This repository host the attestation libraries as part of TokenScript. Discussion goes to the forum https://community.tokenscript.org/
You can always use this project in your own code through Maven central, by adding the following dependency in your POM:
<dependency>
<groupId>org.tokenscript</groupId>
<artifactId>attestation</artifactId>
<version>0.4.1</version>
</dependency>
This repository's library serves 3 use-cases of attestations.
Use-case | Description | Protocol | Cmd Demo |
---|---|---|---|
Identifier attestation | Identifies a person by their Internet identifier such as Twitter Handle and email address. | See below | |
Cheque | Cheque: a signed message allows the beneficiary to perform an action, such as withdrawing Ether. | Send-token-by-identifier | demo. |
Attestation as token | An attestation that can be used as a non-fungible token. |
The code is not compartmentalised by use-cases, since they share common components. We provide the common components as library, then, for each use-case, a commandline utility.
Since in most cases these attestations are used on the web, Web-developers should be more interested in attestations being implemented as part of token-neogotiation instead of the basic commandline form. Therefore, this repository should be more of interest by the protocol developers. Our JavaScript based token negotiation implementation is at the token-negotiator repo.
Together with repos that uses the library code, in total we maintain 4 repos. The relationship between these 4 repos are demonstrated here. This one is the first (the upper-left one).
You need the following installed:
Once you have them installed, run:
$ gradle build
The build script will run a few tests, resulting a few pem files created in build/test-results/
directory.
To create a jar file for running the demo, run:
$ gradle shadowJar
Which will create a jar file that you can run in the commandline
build/libs/attestation-all.jar
There is a walk-through to use the functionalities provided by this library through commandline: commandline cheque demonstration and the commandline EIP712 attestation demonstration
This repository has the following content:
data-modules :the data modules definitions used in this project
src :the implementation of the attestation and protocols. We use a Java-Solidity model for quick prototyping - testing.
ethereum/lib : lib for smart contracts which uses attestations
ethereum/issuers : example smart contracts used by issuers, for example, revocation list management.
ethereum/trustlist : members of trustlists to be adopted by smart contracts
ethereum/experiments : work not in the published specifications
ethereum/example-james-squire : an example to be used in your projects which requires attestations
paper : the paper behind the design of this project. The current version there is dated (2018) and doesn't reflect the new work in the last a few years. The current focus is the cheque/attestation protocol
ERC's related to this stream of work are: