For developers, check out the extensive list of usage and unit tests showing how to use the various protocol features.

Use Cases

Prove ownership and authoring identity of any B:// Bitcoin Data File

Add multiple signatures to form agreements and contracts

Decouple identity from funding addresses





Identity addresses are fully decoupled from the funding addresses which means we can upload files and pay the mining fees from any address and never requiring an on-chain payment from the Identity address.

This gives better security and privacy because the Identity address is only used to digitally sign and never needed for making payments.

For example, we can upload a blog post using Money Button to pay for the mining fees, yet never expose the Identity key with an on-chain payment.

The Author Identity Protocol specification uses Bitcom and the prefix for the protocol is 15PciHG22SNLQJXMoSUaWVi7WSqc7hCfva

BitcoinFiles-SDK support makes it easy to create, build and verify digital signatures on files:

Application and Usage Examples

Establish Stable Social Media Identities

With Author Identity the funding address is no longer used as the user identifier, this means your users can fund their transactions from any source and still maintain an identity they fully control.

OP_RETURN B ... | MAP ... | AUTHOR_IDENTITY

Example showing how the MAP (Magic Attribute Protocol) can be chained with Author Identity

Sign and Own Digital Content

Users can now upload content and digitally sign that they created the file. A user could choose to reveal their Identity with another on-chain transaction or remain pseudonymous until a later point in time.

bitcoinfiles.createFile({ file: { content: 'Hello world!', contentType: 'text/plain', }, pay: { key: privateKey }, signatures: [ { key: privateKey } ] }); See examples at: https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL#usage-and-library-examples

Multiparty Contract and File Signatures

Multiple parties can sign the same B:// file to create an agreement and a witness that all parties signed. You can have as many layered signatures as you wish.

Using the Author Identity and BitcoinFiles-SDK you can reproduce the core functionality of DocuSign, HelloSign and other digital signing services in a few lines of code.

Simple provide multiple signatures in the array:

bitcoinfiles.createFile({ file: { content: 'Hello world!', contentType: 'text/plain', }, pay: { key: privateKey }, signatures: [ { key: 'first private key', }, { key: 'second private key' } ] });

Or you can first build the file before creating it and then broadcast it later:

var partialSignature = await bitcoinfiles.buildFile({ file: { content: 'Hello world!', contentType: 'text/plain', }, signatures: [ { key: 'first private key', } ] });

See examples at: https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL#usage-and-library-examples





Arbitrary OP_RETURN Signing and Broadcasting with Datapay

You may want to inspect or pass on the processing to another service. You can call `bitcoinfiles.buildFile` and then pass off the OP_RETURN array to datapay for broadcasting:

See examples at: https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL#usage-and-library-examples

Conclusion

We are excited to share with the world Author Identity Protocol and we look forward to hearing your feedback and suggestions. Most of all we look forward to seeing what you all build!

Special thanks to Monkeylord and Unwriter for feedback and ideas.



