Concept

SSI vs DID: what is actually different

The two terms get used as synonyms in vendor copy. They sit at different layers, and treating them as one thing makes it very hard to evaluate anything honestly.

A position

Self sovereign identity (SSI)

A claim about who should hold identity. It says the subject, a person or an agent, should hold their own identifiers and credentials and present them selectively, rather than renting an account from a platform that can revoke it. SSI is a goal, not a file format.

A mechanism

Decentralized identifier (DID)

A W3C standard for writing an identifier down so it resolves to a document containing public keys and service endpoints. It is one way to name a subject. On its own it does not make a system self sovereign.

You can implement self sovereign identity without DIDs, and you can use DIDs inside a system that is not self sovereign at all. The standard fixes the syntax. It does not settle the politics.
The stack

One is a goal. The rest are mechanisms.

Reading it as three layers makes the vendor claims much easier to sort.

How self sovereign identity, DIDs, and anchoring relateSelf sovereign identity is a design goal. Decentralized identifiers and verifiable credentials are standards that can serve that goal. Underneath them sits the question of where the record actually lives, which can be a web server, the key itself, or a public blockchain such as Bitcoin in the case of BAP.THE GOALSelf sovereign identityA position: the subject holds their own identifiers and credentials, rather than renting an account from a platform.STANDARDS THAT CAN SERVE ITDecentralized Identifiers (DID)A syntax for naming a subject and resolving it to keys.Verifiable Credentials (VC)A format for signed claims made about a subject.WHERE THE RECORD ACTUALLY LIVESA web serverThe key itselfA public blockchain (BAP)
Anatomy

What a DID actually is

Three parts, and only one of them is interesting.

did:example:123456789abcdefghi
Scheme

Always did. It tells a resolver what kind of identifier follows.

Method

The part that decides everything. It names the system that says where the record lives and how to read it.

Identifier

The subject, as that method names it. Meaningless outside the method.

Two DIDs with different methods have almost nothing in common beyond the prefix. When a product says it supports DIDs, the useful follow up is which methods, and where those methods anchor.

Principles

What SSI is actually asking for

Control

The subject holds the key. Nobody revokes the identity by deleting a row, because there is no row to delete.

Portability

The identifier outlives the application that created it. If you cannot take it somewhere else, what you had was an account.

Minimal disclosure

Prove the specific thing being asked. Prove membership without handing over the whole membership record.

Side by side

SSI, DID, and BAP

SSIDIDBAP
What it isA design positionAn identifier syntax and resolution modelA protocol for anchoring identities and attestations on Bitcoin SV
Question it answersWho should hold identityHow to name a subject and find its keysWhere the record lives and how it stays tamper evident
Standardized byNo single bodyW3CAn open specification, not a W3C standard
Requires a blockchainNoNoYes, Bitcoin SV for the anchor
Sufficient on its ownNo, it is a goalNo, it names but does not authenticateProvides the anchor. Authentication and authorization sit on top
Where Sigma sits

Anchored on BSV, key held by the user

Sigma takes the self sovereign position and implements it with a Bitcoin anchored record. Users hold a key that never leaves their device. Identity entries and attestations are published through BAP, the Bitcoin Attestation Protocol, so the record is public and tamper evident without a registry operator deciding who gets to be in it. The attestation hashes live on BSV, which is the anchor chain. The key that generates the identity is a separate matter, and it can be one the user already holds on another blockchain. Authentication is a signature. Authorization can then be based on what that identity holds.

Stated plainly, because it matters. BAP is not a registered W3C DID method. It answers the same question, naming a subject and resolving it to keys, using a Bitcoin anchored record instead of a DID document. If your requirement is literally a did: identifier, that is a real constraint and you should weigh it before going further.
Questions

Three quick ones

Do I need SSI to do Know Your Agent?
No, but the two pull in the same direction. KYA needs an identity a verifier can check without the vendor's help, which is most of what SSI is asking for. The KYA explainer covers the requirement side.
Is a DID the same as a wallet?
No. A wallet holds keys and signs with them. A DID is a name that resolves to keys. A wallet can hold the key behind a DID, and often does, but they are different objects doing different jobs.
Can a system use both DIDs and a chain anchored record?
Yes, and several do. A DID method can specify a blockchain as its resolution target. The distinction that matters is not the syntax you write the identifier in, it is whether the party being verified controls the record.