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
Envelopetype. - 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.shTo check your installation, run:
envelope helpIf you only want to run the tool from the command line without installing it:
./build.sh
swift run --run EnvelopeTool helpNOTE: 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.