Skip to content

Update README from Cryptid with changes #210

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
Cryptid is a protocol and client-suite that brings the power of Identity to
[Solana](https://solana.com).

Traditionally, the way to identity yourself on the blockchain is through ownership of a private key. You essentially are
Traditionally, the way to identify yourself on the blockchain is through ownership of a private key. You essentially are
your private key. Assets are owned and transactions are signed using this key.

Cryptid changes this, by establishing an identity layer on the blockchain, specifically on Solana. It does this by
providing a general-purpose, flexible proxy accounts between the user and their private keys. Instead of assets being
owned and transactions signed by a single private key, these assets are now owned and transactions are signed by a
owned and transactions being signed by a single private key, these assets are now owned and transactions are signed by a
Cryptid account.

Cryptid is tightly coupled to `did:sol` ([Github](https://github.com/identity-com/sol-did)). A Cryptid account is
Expand All @@ -17,10 +17,10 @@ controlled either
2. by a DID and a Middleware Account (that can be generically chained to an arbitary number of Middleware accounts)

Middleware is useful to control access to a Cryptid Account with one or more additional constraints. Middleware programs
are independent, native or third-party, programs that adhere to a predefined program and client interface. For example,
are independent, native, or third-party programs that adhere to a predefined program and client interface. For example,
Middlewares could do one of the following:

- Only allow access to the Cryptid Account with an additional permissioned token present.
- Only allow access to the Cryptid Account when an additional permissioned token is present.
- Only allow access to the Cryptid Account after a certain time has elapsed between proposing and executing a transaction
- Only allow access to the Cryptid Account after passing more advanced multi-sig requirements
- ...
Expand All @@ -37,9 +37,9 @@ with Index 0. That means, that even without a subject interacting in any way wit
account controlled by their DID. This is a useful transitive property, meaning, everyone with a valid Solana wallet
`XYZ...` also has a generative DID `did:sol:XYZ...` and a generative Cryptid account `ABC...` (as PDA of DID and Index).

Cryptid Accounts with higher indexes (> 0) are created explicitly and can (optionally) be configured to also adhere to
Middleware constraints. Middleware Accounts can chain other Middleware accounts allowing for composable solutions
without rewriting any (often security-critical) code.
Cryptid accounts with higher indexes (> 0) are created explicitly and can (optionally) be configured to also adhere to
Middleware constraints. Middleware accounts can chain other Middleware accounts allowing for composable solutions
without rewriting any code. This code is often critical to security and so should be not be changed as a best practice.

## Features

Expand All @@ -62,17 +62,19 @@ without rewriting any (often security-critical) code.
DIDs ([Decentralized Identifiers](https://www.w3.org/TR/did-core/)) are the standard identifier for self-sovereign identity. It is a globally unique
identifier and independent of any central authority.

Cryptid use the `did:sol` did method on Solana. The use of DIDs in Cryptid means that we can tie it to up to verifiable
Cryptid uses the `did:sol` did method on Solana. The use of DIDs in Cryptid means that it can be tied up to verifiable
credentials, and add claims on your Cryptid account.

As an example. We can have a verifiable way that an NFT creator that has created an NFT under key X is a
particular artists. We can add a verifiable credential to that identity, have it discoverable on-chain
(either directly on-chain, or via a link that's discoverable on-chain) - that attests to who they are.
As an example, we can verify that an NFT creator that has created an NFT under key X is a
particular artist. We can add a verifiable credential that attests to their identity and have it discoverable on-chain
(either directly on-chain, or via a link that is discoverable on-chain) - that attests to who they are.

## On Our Roadmap

### M-of-N Multisig
Cryptid currently supports 1-of-N multisig. We plan to expand this to support threshold-multisig via Middleware.
Cryptid currently supports 1-of-N multisig, where only one signer of a set of keys that are allowed to sign is all that is required to complete transactions. We plan to expand this to support threshold-multisig via Middleware.

M-of-N multi-sig requires a set number `M` from the `N` group of signers to sign each transaction. This would be like having a committtee or board where three people of a group of five must approve a purchase.

### Spending limits and restrictions

Expand All @@ -97,7 +99,7 @@ A Cryptid account is an _identity_ in the form of an individual, company, pet, "
_thing_ you can think of.

Cryptid account can have zero or more keys associated with it. Accounts with zero keys can be controlled by a separate
entity. Accounts with multiple keys will allow a Cryptid account to preform actions like:
entity. Accounts with multiple keys will allow a Cryptid account to perform actions like:

* Multiple devices accessing the account
* Key rotation and account recovery
Expand All @@ -106,12 +108,12 @@ entity. Accounts with multiple keys will allow a Cryptid account to preform acti
### How do I create a Cryptid account?

All existing Solana wallets are automatically compatible with Cryptid. If you have a wallet, you have a Cryptid account
automatically. Your default cryptid account has a new address, but is backed by your existing wallet, and
automatically. Your default Cryptid account has a new address, but is backed by your existing wallet, and
transactions you make with it are signed with your existing wallet key.

### How much does a Cryptid account cost?

By default, your Cryptid account is free. Anyone with an existing Solana account already has a Cryptid account they can
By default, a Cryptid account is free. Anyone with an existing Solana account already has a Cryptid account they can
start using.

Advanced usage of Cryptid requires additional information to be registered on-chain, which incurs a cost imposed by
Expand All @@ -124,7 +126,7 @@ No! We are planning to include Cryptid as a supported wallet within
completely transparent towards the dApp. It's just one more option for the user to chose from.

### Who really owns the funds in my Cryptid address?
On-chain your Cryptid address is owned by the System Program however the
On-chain, your Cryptid address is owned by the System Program however the
[Cryptid Signer program](./programs/cryptid) is the authority for it which makes sure that only keys and/or
controllers in your Cryptid account are able to sign for it. Therefore, if the program is secure, your funds are too.

Expand Down