{"id":13288224,"url":"https://github.com/ziegfried/peepeth-subgraph","last_synced_at":"2025-03-10T05:32:16.622Z","repository":{"id":39541884,"uuid":"185985000","full_name":"ziegfried/peepeth-subgraph","owner":"ziegfried","description":"Subgraph for Peepeth, the blockchain-powered social network","archived":false,"fork":false,"pushed_at":"2023-01-03T22:11:55.000Z","size":2561,"stargazers_count":3,"open_issues_count":33,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-07-29T16:58:25.619Z","etag":null,"topics":["assemblyscript","blockchain","ethereum","graphql","ipfs","peepeth","the-graph"],"latest_commit_sha":null,"homepage":"https://thegraph.com/explorer/subgraph/ziegfried/peepeth","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ziegfried.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-10T12:31:22.000Z","updated_at":"2024-07-29T16:58:25.620Z","dependencies_parsed_at":"2023-02-01T11:02:14.292Z","dependency_job_id":null,"html_url":"https://github.com/ziegfried/peepeth-subgraph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziegfried%2Fpeepeth-subgraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziegfried%2Fpeepeth-subgraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziegfried%2Fpeepeth-subgraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziegfried%2Fpeepeth-subgraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziegfried","download_url":"https://codeload.github.com/ziegfried/peepeth-subgraph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242798265,"owners_count":20186882,"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":["assemblyscript","blockchain","ethereum","graphql","ipfs","peepeth","the-graph"],"created_at":"2024-07-29T16:55:00.796Z","updated_at":"2025-03-10T05:32:16.318Z","avatar_url":"https://github.com/ziegfried.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peepeth Subgraph\n\nThis [subgraph](https://thegraph.com/explorer/subgraph/ziegfried/peepeth) sources events from [Peepeth](https://peepeth.com), the the blockchain-powered social network.\n\n## Example query\n\n```graphql\n{\n  # 5 lastest peeps\n  peeps(first: 5, orderBy: number, orderDirection: desc) {\n    number\n    content\n    timestamp\n    # Get some account info from the author of the peep\n    account {\n      name\n      realName\n    }\n    # Get message this peep is sharing\n    share {\n      content\n      account {\n        name\n        realName\n      }\n    }\n  }\n  # Get total number of accounts and peeps on Peepeth\n  peepeth(id: \"global\") {\n    numberOfPeeps\n    numberOfAccounts\n  }\n}\n```\n\n## Demo App\n\nCheck out the demo app, which uses the subgraph to show some Peepeth accounts, their followers and peeps.\n\nSee it live here: [https://peepeth-subgraph.sigi.dev/](https://peepeth-subgraph.sigi.dev/)\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./demo-app/screenshot.png\" width=\"550px\"\u003c/img\u003e \n\u003c/div\u003e\n\nFind the sources and some more info in the [/demo-app](/demo-app) folder\n\n## How Peepeth works\n\nFor a high-level overview see [https://peepeth.com/how](https://peepeth.com/how).\n\nBasically peepeth uses a [stateless smart contract](https://medium.com/@childsmaidment/stateless-smart-contracts-21830b0cd1b6) where (arguments to) method calls point to JSON blobs on IPFS. The transaction is submitted and signed by the user.\n\n```\n  Ethereum Tx                      IPFS File\n+---------------------+          +----------------------------+\n| createAccount(      |          |{                           |\n|   name: \"Hugo\",     |          |  \"realName\": \"Hugo Foobar\",|\n|   ipfsHash: \"Qm...\" +---------\u003e+  \"location\": \"Somewhere\",  |\n| )                   |          |  ...                       |\n+---------------------+          |}                           |\n                                 +----------------------------+\n```\n\nMost actions can be performed this way, see [ABI](abis/Contract.json) for details. Some actions do not have corresponding JSON data in IPFS (follow/unfollow for example).\n\n### Batched actions\n\nTo reduce cost, Peepeth allows the user to batch a number of actions and submit them at once. In this case the ethereum function call points to a JSON blob in IPFS that contains a list of actions (which can in turn point to JSON blobs in IPFS).\n\n```\n   Ethereum Tx             IPFS File 1\n+-------------------+    +--------------------------------+       IPFS File 2\n|saveBatch(         |    |{                               |     +---------------------------+\n|  ipfsHash: \"Qm..X\"+---\u003e+  \"batchSaveJSON\": [            |     |{                          |\n|)                  |    |    { \"follow\": { \"followee\": \"0|     |  \"type\": \"peep\",          |\n+-------------------+    |    { \"peep\": { \"ipfs\": \"Qm...J\"+----\u003e+  \"content\": \"hello world\",|\n                         |  ]                             |     |  ...                      |\n                         |}                               |     |}                          |\n                         +--------------------------------+     +---------------------------+\n```\n\n### Signed actions\n\nSee\n\n- [https://peepeth.com/a/free](https://peepeth.com/a/free)\n- [https://medium.com/coinmonks/evolution-of-decentralised-social-media-dfe567d23e54](https://medium.com/coinmonks/evolution-of-decentralised-social-media-dfe567d23e54)\n\nBasically allows users to perform actions for free. User sign action(s) and a central service submits signed batches for all users to the blockchain.\n\nSimilar to regular batch, signed actions are stored in JSON documents on IPFS, pointing to other IPFS hashes. The user creates a signature of the IPFS hash of the actual action document using ethereum-style elliptic curve cryptography (`eth_sign`).\n\n## Subgraph Schema\n\n### Account\n\nAn account is a peepeth user, bound to an ethereum wallet\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eid\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe account ID is the ethereum wallet address of the user\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003enumber\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nAccounts are numbered in the order they were created\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ename\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe username\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eipfsHash\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nIPFS of the account info\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003einfo\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nTagline of the user\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ewebsite\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe users website\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003elocation\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nGeographical location of the user (not in a particular format)\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003erealName\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe users real name\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eavatarUrl\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nUser avatar image\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ebackgroundUrl\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nUser background image\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003emessageToWorld\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nShout it out there\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003efollowers\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#follower\"\u003eFollower\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nList of followers of this user, for example\n\n```\nfollowers {\n  account {\n    name\n  }\n}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003efollowing\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#follower\"\u003eFollower\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nList of peepeth this account is following, for example\n\n```\n\nfollowing {\n  followee {\n    name\n  }\n}\n\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epeeps\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#peep\"\u003ePeep\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nList of peeps by this account\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInBlock\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nNumber of the ethereum block this account was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInTx\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#bytes\"\u003eBytes\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nHash of the ethereum transation this account was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedTimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp of the transaction this account was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eupdatedInBlock\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nNumber of the ethereum block this account was last updated in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eupdatedInTx\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#bytes\"\u003eBytes\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nHash of the ethereum transaction this account was last updated in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eupdatedTimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp of the transaction this account was last updated in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Follower\n\nA follower connects two accounts in a directed fashion.\nIt persists the information of an account following an followee-account.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eid\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nA combination of the two account IDs\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003efollowee\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#account\"\u003eAccount\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe account being followed\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eaccount\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#account\"\u003eAccount\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe account that is following\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp when the follow action occurred\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInBlock\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nNumber of the ethereum block this follow action ocurred\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInTx\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#bytes\"\u003eBytes\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nHash of the ethereum transaction this follow action ocurred\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedTimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp of the transaction this follow action ocurred\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Peep\n\nA post made on the Peepeth social network\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eid\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe Peep ID is the IPFS hash from where the data was retrieved\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003enumber\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nPeeps are numbered in the order they are processed\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etype\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#peeptype\"\u003ePeepType\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nType of the peep, allows to distinguish between regular peeps,\npeeps that share another peep, and replies to other peeps\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003econtent\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThe content (message) of the peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003epic\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#string\"\u003eString\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA picture associated to the peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eaccount\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#account\"\u003eAccount\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe author of the peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003etimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp when the peep was created\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eshare\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#peep\"\u003ePeep\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe peep shared by this peep. This is null in case this is not of type=SHARE\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ereplyTo\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#peep\"\u003ePeep\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nThe peep which this peep is the reply to. Thi is null in case this is not of type=REPLY\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ereplies\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e[\u003ca href=\"#peep\"\u003ePeep\u003c/a\u003e!]!\u003c/td\u003e\n\u003ctd\u003e\n\nList of all reply-peeps to this peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInBlock\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nNumber of the ethereum block this peep was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedInTx\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#bytes\"\u003eBytes\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nHash of the ethereum transation this peep was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003ecreatedTimestamp\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTimestamp of the transaction this peep was created in\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Peepeth\n\nGlobal stats about Peepeth, use Peepeth(id: \"global\")\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eField\u003c/th\u003e\n\u003cth align=\"right\"\u003eArgument\u003c/th\u003e\n\u003cth align=\"left\"\u003eType\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003eid\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#id\"\u003eID\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nThere is only one entry with `id: \"global\"`\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003enumberOfAccounts\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTotal number of Peepeth accounts\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003enumberOfPeeps\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nTotal number of peeps\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" valign=\"top\"\u003e\u003cstrong\u003enumberOfPeepsNotFound\u003c/strong\u003e\u003c/td\u003e\n\u003ctd valign=\"top\"\u003e\u003ca href=\"#int\"\u003eInt\u003c/a\u003e!\u003c/td\u003e\n\u003ctd\u003e\n\nNumber of peeps where the data in IPFS could not be located\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n## Enums\n\n### PeepType\n\nType of a peep to distinguish replies, shared peeps and regular peeps\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003cth align=\"left\"\u003eValue\u003c/th\u003e\n\u003cth align=\"left\"\u003eDescription\u003c/th\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003ePEEP\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA regular peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eSHARE\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA peep sharing another peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=\"top\"\u003e\u003cstrong\u003eREPLY\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003e\n\nA peep as a reply to another peep\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n## Known issues\n\n- Not not all peeps, accounts, followers are recorded correctly by the subgraph in cases when IPFS reads time out: [graph-node issue](https://github.com/graphprotocol/graph-node/issues/963)\n- Signatures from signed actions are currently not verified, since there is no easy way to perform this in assembly script: [graph-ts issue](https://github.com/graphprotocol/graph-ts/issues/63)\n- `changeName` actions are currently ignored due to some transactions in mainnet causing the subgraph to crash: [graph-node issue](https://github.com/graphprotocol/graph-node/issues/932)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziegfried%2Fpeepeth-subgraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziegfried%2Fpeepeth-subgraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziegfried%2Fpeepeth-subgraph/lists"}