social.smallbury.actor.trust

Contacts this actor trusts, content-key epochs for E2EE, and optional in-flight pairwise-secret delivery during trust establishment. Trusted DIDs are cleartext for AppView indexing. Mutual trust is derived: A trusts B and B trusts A (each side's trusted array). Feed visibility requires mutual trust on both records. Per-epoch content keys use opaque slots (see #contentKeyWrap).

Repository @lexicon.pds.smallbury.social did:plc:wnagcp6h73nxmvmwid2xxukx not from the namespace authority
Details · record, key literal:self
Kindrecord
Record keyliteral:self
Authorityactor.smallbury.social
Indexed

Record

record · key literal:self

Properties

createdAt

string · datetime

keyEpochs

requiredarray

Ordered content-key epochs. Only the latest epoch (no endedAt) is used for new posts and comments. Earlier epochs remain for decrypting historical content.

itemsref
Reference

Temporary delivery of a pairwise trust secret to a peer during establishment (encrypted to the peer's profile encryptionPublicKey). Removed after the peer has retrieved and acknowledged. Used when the acceptor generates the secret (new-user path) or when the initiator pre-delivers it (existing-user path).

itemsref

trusted

requiredarray

DIDs this actor trusts. Cleartext for AppView; does not by itself reveal per-post subset audiences. Listing a DID here may occur before they reciprocate (pre-emptive trust).

itemsref
Reference

updatedAt

string · datetime

#contentKeyWrap

object

Properties

slot

requiredstring

Opaque lookup key. Recipients compute slot = Base64URL(HMAC-SHA256(pairwiseTrustSecret, keyEpochId)). pairwiseTrustSecret is agreed at trust establishment and stored only on the two clients—not published on the PDS.

  • minLength: 1
  • maxLength: 128

wrappedKey

requiredbytes

This epoch's symmetric content encryption key, encrypted to the recipient's encryptionPublicKey from social.smallbury.actor.profile.

  • maxLength: 512

#keyEpoch

object

Properties

contentKeyWraps

requiredarray

One wrapped copy of this epoch's symmetric content key per intended recipient. Opaque slots so wraps are not labeled with recipient DIDs. May include dummy wraps.

itemsref
Reference

endedAt

string · datetime

Set when a newer epoch is created. Omitted on the current epoch.

keyEpochId

requiredstring

Stable identifier for this epoch (e.g. sequential "0", "1", …). Referenced by encrypted posts and comments.

  • minLength: 1
  • maxLength: 64

startedAt

requiredstring · datetime

#pendingPairwiseSecret

object

Properties

inviteId

string

Optional link to social.smallbury.graph.invite on the initiator's repo.

  • minLength: 1
  • maxLength: 128

peerDid

requiredstring · did

The contact who should decrypt wrappedSecret.

wrappedSecret

requiredbytes

32-byte pairwiseTrustSecret for this pair, encrypted to peerDid's encryptionPublicKey from social.smallbury.actor.profile.

  • maxLength: 512

#trustedEntry

object

Properties

did

requiredstring · did

since

requiredstring · datetime

When this actor added the contact to trusted.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • social.smallbury.actor.keyring

    record not from the namespace authority

    Encrypted snapshot of the actor's local pairwise trust secrets for multi-device sync. Ciphertext is encrypted to encryptionPublicKey on social.smallbury.actor.profile; only the identity private key on a authorized device can decrypt it.

  • social.smallbury.actor.profile

    record not from the namespace authority

    Supplemental Smallbury profile data stored alongside app.bsky.actor.profile. Presentation fields (display name, avatar, description, etc.) live on the Bluesky profile record only.