A Swift command line tool for manipulating the Gordian Envelope data type.
Written by Wolf McNally for Blockchain Commons.
- Introduction to Envelope
- Envelope Docs
- BC Secure Components - A collection of useful primitives for cryptography, semantic graphs, and cryptocurrency in Swift. Includes the reference implementation of the
Envelope
type. - BC Foundation - A collection of useful primitives for cryptocurrency wallets.
- URKit - An iOS framework for encoding and decoding URs (Uniform Resources).
- Research - Research and proposals of interest to the blockchain community.
The following docs exemplify the basic functionality of the envelope-cli
app.
- 1: Overview of Commands — Adding subjects, assertions, signatures, and salt.
- 2: Basic Examples — Demonstrating standard methodologies for entry, encryption, and signing.
- 3: SSKR Example — Using Shamir's Secret Sharing to lock envelopes.
- 4: Complex Metadata Example — Creating envelopes with layered, structured data.
- 5: DID Document Example — Creating and wrapping identifiers.
- 6: Verifiable Credential Example — Building complex credentials around an identifier.
- 7: Verifiable Credential with Detailed Elision Example — Eliding some of a credential.
- 8: Inclusion Proofs — Proving the inclusion of an elided credential.
- 9: Diffing — Showing the differences between two envelopes.
For more examples of envelope-cli
usage, see the envelope-cli videos and their transcripts.
- Envelope CLI Playlist (YouTube)
- Introduction to Gordian Envelopes
- Envelope CLI - 1 - Overview [ Transcript with Examples ]
- Envelope CLI - 2 - Examples [ Rough Transcript ]
- Envelope CLI - 3 - Elision in Detail [ Rough Transcript ]
- Envelope CLI - 4 - Distributed Identifier [ Rough Transcript ]
- Envelope CLI - 5 - Inclusion Proofs[ Rough Transcript ]
- Older videos
You will need Xcode 15 or later installed.
From the cloned repository directory, the following command will compile the tool and install it in the /usr/local/bin/
directory so it is available from the command line. The install.sh
script will require you to enter your password to complete the install.
./install.sh
To check your installation, run:
envelope help
If you only want to run the tool from the command line without installing it:
./build.sh
swift run --run EnvelopeTool help
NOTE: If you run envelope
with no arguments, it will begin waiting on input from stdin and you will need to press ^C
to exit it.
NOTE: There is an uninstall.sh
script if you wish to remove the tool.
From here, visit the Overview of Commands to start learning how to use the tool. If you are unfamiliar with the Envelope
type, we suggest starting with the Introduction to Envelope.