The @protocol fundamentals

What is the @protocol?

@root & secondary servers

Schema

@protocol server verbs

from verb

@from:@alice // request to @alice server from @alice
data:_948da07a-01da-457f-a23b-aa851738e898@alice:29741692–6c08–408c-b93b-24d2758cc0f9
@from:@bob // request to @alice server from @bob
data:proof:_64a27907-f555–44f8-bd86-b97838303805@bob:dfc6aedf-4618–4446–84bb-9d15838a7b10 //response from @alice server

pol verb

@from:@bob // request to @alice server from @bob
data:proof:_64a27907-f555–44f8-bd86-b97838303805@bob:dfc6aedf-4618–4446–84bb-9d15838a7b10 //response from @alice server
@pol
@bob@

pkam verb

@from:@alice // request to @alice server from @alice
data:_948da07a-01da-457f-a23b-aa851738e898@alice:29741692–6c08–408c-b93b-24d2758cc0f9
// snippet to sign challenge with private key
var key = RSAPrivateKey.fromString(privateKey);
var challenge = ‘_948da07a-01da-457f-a23b-aa851738e898@alice:29741692–6c08–408c-b93b-24d2758cc0f9’;
var signature = base64Encode
(key.createSHA256Signature(utf8.encode(challenge)));
// send pkam request to server
@pkam:<signature>
//prompt is returned if authentication is successful on @alice server
@alice@

update verb

  1. Sharing data publicly
update:public:phone@alice +1–111–111
update:@alice:creditcard@alice 123–456–789
update:@bob:email@alice alice@atsign.com

llookup verb

  1. Local lookup public key
llookup:public:phone@alice 
data:+1–111–111
llookup:@alice:creditcard@alice 
data:123–456–789
llookup:@bob:email@alice 
data:alice@atsign.com

plookup verb

@bob@pllookup:phone@alice 
data:+1–111–111

lookup verb

  1. @bob is authenticated
@bob@lookup:email@alice 
data:
alice@atsign.com
lookup:phone@alice 
data:+1–111–111 //value of public:phone@alice

scan verb

  1. @alice is unauthenticated
@scan 
data
:phone@alice //returns only the key shared publicly
@alice@scan 
data:[public:phone@alice,@alice:creditcard@alice,@bob:email@alice] //returns all the keys in @sign’s server

delete verb

delete:@bob:email@alice

Now for some Internet Optimism

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Simple and secure way to pass secrets and credentials into Docker containers

An Introduction to Message Queues With RabbitMQ and Python

Manage AWS and third-party cloud infrastructure with AWS Cloud Control API

Automating Planetscale Deploy Requests into our CI/CD

Rewriting the Software Engineering Daily Android app

Jenkins in Docker with Host’s Docker Socket

First PAINT token drop and LP event notice

4 Capabilities of Amazon Kinesis

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
The @ Company

The @ Company

Now for some Internet Optimism

More from Medium

How To Add Authentication To Your Flutter App In Few Minutes

“Hamming It Up” with The @ Company’s Colin Constable, Creator of CATWEB Mobile App For and By the…

Building an Omegle clone in Flutter using 100ms SDK

A Web Developer’s Take on Flutter