{"id":37193132,"url":"https://github.com/wotvision/wot1","last_synced_at":"2026-01-14T22:25:11.425Z","repository":{"id":218649788,"uuid":"121643965","full_name":"WOTvision/wot1","owner":"WOTvision","description":"The WoT app: Distributed Web of Trust on the blockchain: publish signed documents, fight fake news!","archived":false,"fork":false,"pushed_at":"2024-11-28T15:12:35.000Z","size":87,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-28T16:23:43.934Z","etag":null,"topics":["blockchain","cryptocurrency","cryptography"],"latest_commit_sha":null,"homepage":"http://wot.vision/","language":"Go","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/WOTvision.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":"2018-02-15T15:14:05.000Z","updated_at":"2024-11-28T15:12:38.000Z","dependencies_parsed_at":"2024-02-10T02:00:37.537Z","dependency_job_id":null,"html_url":"https://github.com/WOTvision/wot1","commit_stats":null,"previous_names":["wotvision/wot1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WOTvision/wot1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WOTvision%2Fwot1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WOTvision%2Fwot1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WOTvision%2Fwot1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WOTvision%2Fwot1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WOTvision","download_url":"https://codeload.github.com/WOTvision/wot1/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WOTvision%2Fwot1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28436310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T21:32:52.117Z","status":"ssl_error","status_checked_at":"2026-01-14T21:32:33.442Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","cryptocurrency","cryptography"],"created_at":"2026-01-14T22:25:10.448Z","updated_at":"2026-01-14T22:25:11.392Z","avatar_url":"https://github.com/WOTvision.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The WoT blockchain\n\n**Note: this is 6 year old code. There has been no progress on it since.**\n\nHere's a presentation with the pitch: https://docs.google.com/presentation/d/1_5rWRTpGtAmn7Mb-sBLqPqqW2qq4tgBvyB7D4H7yxdU/edit?usp=sharing\n\nYou want to fight fake news? Hold politicians accountable? \n\nAll that can be done with a blockchain.\n\nMake those who issue statements of any kind - political, financial, scientific - publish and sign their statements on the blockchain. They will be issued a QR code uniquely identifying their statement. Make mass media quote such statements AND INCLUDE THE QR CODE so the public can verify the statement themselves, as well as get the ENTIRE STATEMENT, not just bits and pieces \"journalists\" quote out of context.\n\nAnd for real journalists, they can publish their stories in parallel on the blockchain so OTHER OUTFITS can quote their statements, AND PAY THEM for this quotation. In this way, the public can actually track what the real source of information is, and journalists and news outfits can actually get paid if someone quotes their articles. It's a win-win proposition.\n\nThis is what this project wants to do.\n\nIf it gets funded, that is. It's not impossible - just hasn't happened so far. It even has a way of making money: as fees in article transactions.\n\n# Design goals\n\n- People follow other people on social media, but just \"following\" is not an indication of \"trust\". This project also adds the dimension of \"trust\" to the \"follower\" relationship, inspired by what OpenPGP did - a web of trust. You might want to follow someone but not trust them.\n- Important information published (posted) will be digitally signed, and these signatures publically available for verification - blockchains are a technology uniquely suitable for this (NOT talking about fintech).\n- Key rotation must be a built-in feature. Information published with an old key is still valid information.\n\n# Tech documentation\n\nThis is a repository containing an implementation of a blockchain which supports an unique feature set: asserting trust of information organised in JSON documents. \n\nThe goal is to have a global public notary service, for people and corporations to issue signed statements which are globally recognized and verifyable, which are identified by a QR code, which the media and news channels can reproduce and which can be verified by the consumers of information (i.e. ordinary people). The vision is to combat fake news by using a thing blockchains are very good at: distributing reliable data, and by providing a low-tech user-centric interface to it, which everyone can use to verify random junk they hear on the media.\n\nExample use case: The president of a major country issues a (text) statement promising certain actions in the next quarter, regarding an important national topic. He publishes this statement on the WoT blockchain, and this statement automatically receives a QR code. This QR code is reproduced by media (both digital media and classic media, including print) so everyone can verify the statement and read its original wording. The QR code can also be shown in a TV clip of the president giving a public announcement of the statement.\n\n(Current) technical properties of the WoT blockchain (WoT = Web of Trust):\n\n* JSON-based\n* Allows publishing of arbitrary JSON documents as transactions\n* Uses Ed25519 cryptography\n* Allows the use of alphanumeric \"handles\" instead of addresses\n* Allows \"upvoting\" JSON documents published as transactions\n* This upvoting can be used to provide support or endorsement of certain documents, like when a company's president upvotes a statement from their CFO.\n* Allows \"upvoting\" user accounts, to endorse them in a hierarchical manner (e.g. a CEO publishes JSON documents vouching that a certain handle belongs to the company's PR department, the PR department publishes documents vouching that certain YouTube channels or social media accounts belong to the company, etc.)\n\nThis blockchain is built primarily to support the feature set described in the following section - however, the blockchain itself is usable for other purposes as well.\n\n**Curent status:** This project is not funded and depends on my diminishing free time. Sponsors and investors are wanted.\n\n# The WoT service v1\n\nFor a description what this is all about, read the [White Paper](https://docs.google.com/document/d/1SSBQNTSJY--a-7NjfUMnGdNy4yIg29qOwcWNxHq_DoE/edit?usp=sharing).\n\nSome use cases:\n\n* Politicians can publish digitally signed statements, and reference them in public addresses so they are not taken out of context\n* Newspapers can reference politicians' statements, by publishing QR code linking to them\n* Companies can publish digitally signed documents, such as investor reports, etc.\n* Governments or research institutes can publish digitally signed statistics information, results of R\u0026D, etc.\n\nCurrent state of project: early development phase / not usable.\n\n## Introduction to publishing on the WoT blockchain\n\nThe WoT blockchain supports publishing arbitrary JSON documents as its main feature. In addition to that, and supporting it, the blockchain also implements publishing coin transaction (Bitcoin-style). Publishers (both of documents and of coin transactions) are pseudonymous, i.e. in no case are identifying information required to be present to publish on the WoT blockchain. However, one of the biggest benefits of (optionally) associating identifying information is that it can make documents authenticated, as well as stored immutably and permanently on the blockchain. It is a way for all sorts of entities from ordinary persons, organisations, and even government, to publish authenticated document which are guaranteed to be stored in a provable way.\n\nPublishing on the WoT blockchain begins by publishing an introductory document, which, as the name says, introduces the public key of the publisher, and associates optional identifying information with it. Subsequent documents signed by the same keypair are in this way linked to this identifying information.\n\nEach published document contains the public key of the publisher, and an identification string of the document, which is unique for this publisher. If, at a future point in time, the publisher publishes a document with the same identification string, it is considered to be a newer version of the same document. In this way, keys can be rotated by publishing a new introductory document.\n\nOne of the several special fields a document may contain is a statement that the transaction publisher vouches for the validity of a certain transaction (which may contain a document of its own, etc.), which is used to establish a \"Web of trust\" relationship where publishers choose to verify and vouch for, other publishers and their documents.\n\n## Supported operations\n\nAt a high level, the operations supported by the WoT blockchain (in addition to standard cryptocurrency transactions) are:\n\n* Publish a public key and identifying information for it\n* Publish a signed JSON document\n* Publish a statement that another document (which may e.g. contain an introductory document for a new publisher) is vouched for (or \"trusted\")\n* Rotate keys so that a new key is used for the publisher, maintaining its presence in the blockchain with a new key from this point onwards\n\n# Technical documentation\n\n## Short intro on how to publish documents from scratch on the WoT blockchain by using the `wot1` app\n\n1. Create a new wallet with the `createwallet` command\n2. Obtain enough WoTcoins so that you can publish your documents (TODO: how much?)\n3. Publish your intro document transaction with the `publishintro` command\n4. Create a JSON document you wish to publish\n5. Publish your document with the `publish` command\n\nTo publish subsequent documents, only the last 2 steps are needed, if there are enough WoTcoins in the wallet.\n\n## WoT records\n\nThe genesis block contains the following transaction:\n\n```json\n{\n    \"v\": 1,\n    \"f\": [\"coinbase\"],\n    \"k\": \"WF2bn2KvUMR2CJYpekH8wmDZxLj9GoEyREADSZ2I3gkY\",\n    \"o\": [\n        {\n            \"k\": \"WF2bn2KvUMR2CJYpekH8wmDZxLj9GoEyREADSZ2I3gkY\",\n            \"a\": 1000000,\n            \"n\": 1\n        }\n    ],\n    \"d\": {\n        \"genesis\": \"The Guardian, 15th Feb 2018, \\\"Trump again emphasizes 'mental health' over gun control after Florida shooting\\\"\",\n        \"comment\": \"Peace among worlds!\",\n        \"_id\": \"_intro\",\n        \"_key\": \"WF2bn2KvUMR2CJYpekH8wmDZxLj9GoEyREADSZ2I3gkY\",\n        \"_name\": \"WOTvision\"\n    }\n}\n```\n\nThese are the fields present in the transaction:\n\n* `v` : version number of the transaction format, currently 1\n* `f` : transaction flags, e.g. \"coinbase\"\n* `k` : transaction signer public key\n* `o` : List of transaction outputs (n=account nonce)\n* `d` : The payload data.\n\n### The payload dictionary\n\nThe `d` field of the transaction is the payload document. It is a JSON object which can contain data published to the blockchain, with certain special properties and rules:\n\n* Keys in the first level of the JSON object which begin with an underscore (`_`) are special and reserved. No user-defined key may begin with an underscore in the first level of the JSON object. Examples of special keys in the first level of the payload are the `_id`, `_key` and `_name` keys.\n* Keys in the first level of JSON objects are indexed, supporting fast lookup operations.\n* Subsequent documents with the same `_key` and `_id` values are considered to update and override earlier documents.\n\nCurrently defined special keys in the payload document are:\n\n* `_key`: The public key of the publisher which has published this transaction. This key must verify the transaction signature.\n* `_id`: An identifier of the document, unique in the domain of all documents published with the same public key. If a document is published with the same `_key` and `_id` values, it is considered to be a newer version, and a replacement for the same document. Identifiers starting with the underscore (`_`) are reserved, for example the `_intro` identifier.\n* `_name`: A human-readable name used in certain types of documents.\n* `_newkey`: A new public key the publisher will use from now on. All previously published transactions by this publisher are to be verified with the old key, while all transactions published from now on with this new key are presumed to be associated with the same publisher.\n* `_delkey`: Instruction to delete the association between a key and this publisher for all subsequent transactions. I.e. all transactions signed by this particular key will no longer be associated with this publisher.\n* `_vouchtx`: The publisher of this transaction vouches that another transaction contains data he considers valid - he \"upvotes\" it. The value for the key is the tx hash.\n\nMost of these keys are optional.\n\n**Note:** In the current implementation, the payload JSON document is limited to a single level key-value dictionary where both keys and values are strings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwotvision%2Fwot1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwotvision%2Fwot1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwotvision%2Fwot1/lists"}