Published

SWF Standard

SWF STD-4:2025 (0.1.0)
SWIDs and SWID Documents
SWID
SWF Standard

Published XXX





Abstract

SWIDs are identifiers for the Spatial Web (Spatial Web Foundation), based on the with the following design goals and properties:

  • All Spatial Web Entities (including Credentials) have SWIDs.

  • The Spatial Web SWID Registry ensures uniqueness of the SWIDs.

  • Most SWIDs will be created by a DID Issuer at behest of the Entity and not recorded in a centralized registry.

  • The Spatial Web will include Entities with DIDs created without interaction with any particular authority.

1.  Scope

This document defines spatial web identifiers (SWIDs) and SWID documents, based on the decentralized identifier (DID) (W3C did-core).

In the Spatial Web, SWIDs are used as identifiers for Entities and Domains.

2.  Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

W3C did-core, World Wide Web Consortium. Decentralized Identifiers (DIDs) v1.0. https://www.w3.org/TR/did-core/.

3.  Terms and definitions

For the purposes of this document, the following terms and definitions apply.

3.1. spatial web identifier

SWID

conformant DID (3.3) whose associated DID document (3.5) is a conformant SWID document (3.2)

3.2. SWID document

DID document (3.5) conformant to Clause 5 of this document

3.3. decentralized identifier

DID

type of identifier that enable verifiable, decentralized digital identities

Note 1 to entry: A DID refers to any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) as determined by the controller of the DID.

SOURCE: W3C did-core

3.4. DID controller

entity that controls (create, updates, deletes) a given DID (3.3)

SOURCE: W3C did-core

3.5. DID document

the document returned when a DID (3.3) is resolved

SOURCE: W3C did-core

3.6. DID method

mechanism by which a particular type of DID (3.3) and its associated DID document (3.5) are created, resolved, updated, and deactivated

Note 1 to entry: DID methods are defined using separate DID method specifications.

3.7. SWID registry

register of spatial web identifier (3.1) registrations managed by a designated authority

4.  SWIDs

A Spatial Web Identifier (SWID) is any DID which fulfills the following two requirements:

  1. The DID and its associated DID document MUST be conformant with the W3C did-core specification.

  2. The associated DID document MUST be a conformant SWID Document (Clause 5).

There is no direct restriction for SWIDs with regard to which DID method they use, as long as the two requirements above are fulfilled. Different DID methods have different properties with regard to decentralization, scalability, cost, etc. Depending on the use case, some DID methods may be more suited than others due to such properties.

Note that some DID methods have technical limitations that make them unsuitable for SWIDs. For example, the did:key DID method does not support service endpoints in DID documents, therefore this DID method cannot be used for SWIDs.

Note that one DID method — did:swid — has been specifically designed to meet the requirements of SWIDs for the Spatial Web (SWF 4:2025 (0.1.0)).

4.1.  Example SWIDs

The following are compliant SWIDs using different DID methods:

  • did:web:did-web.dev.godiddy.com:575dcb04-9219-49a8-a6ac-0f982ee17438

  • did:cheqd:testnet:348e4b40-dff4-4f07-987b-833e3f6e01be

  • did:indy:danube:MafjMzJVnX7p5FEv47k8hi

  • did:ethr:sepolia:0x0349de79b43afff92e1db0806272aacc3bd644f0b5622d2dfa310f2aa7180be3f2

  • did:ebsi:zeUucvX2jE79e75xXSxf9S2

  • did:ion:test:EiBBuOWqiR-KD5KByXG8hQ2vycAmT_k3o0agsA1Ntd2guA

They can be resolved using DID Resolution tools such as uniresolver.io or godiddy.com.

5.  SWID Documents

SWIDs — like all DIDs — resolve to DID documents as defined by the W3C did-core specification.

This specification defines a profile of the DID document data structure called a SWID Document. SWID Documents are fully conformant DID documents and can include verification methods, service endpoints, and other technical metadata.

In addition, SWID Documents MUST fulfill the following requirement:

  1. The SWID Document MUST have at least one HSTP Service Endpoint (5.1) and MAY have more than one.

5.1.  HSTP Service Type

This specification defines a new service type HSTPEndpoint, which points to a Hyperspace Transaction Protocol (HSTP) endpoint for a Spatial Web Node where the entity lives.

{
 
"service": [{
   
"id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#hstp",
   
"type": "HSTPEndpoint",
   
"serviceEndpoint": "https://hstp.example.com/hstpendpoint"
 
}]
}

An HSTP service in a SWID Document can optionally express a “profile”, in order to indicate which protocols or bindings are supported by the endpoint (e.g. XMPP, RPC, etc.):

{
 
"service": [{
   
"id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#hstp",
   
"type": "HSTPEndpoint",
   
"serviceEndpoint": "https://hstp.example.com/hstpendpoint",
   
"profile": "HSTPXMPPProfile"
 
}]
}

5.2.  Example SWID Document

The following is an example of a complete SWID Document for a SWID:

{
 
"@context": [
   
"https://www.w3.org/ns/did/v1.1",
   
"https://spatialwebfoundation.org/contexts/did/1.0"
 
],
 
"id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv",
 
"verificationMethod": [{
   
"id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#keys-1",
   
"type": "Multikey",
   
"controller": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv",
   
"publicKeyMultibase": "z6MkmM42vxfqZQsv4ehtTjFFxQ4sQKS2w6WR7emozFAn5cxu"
 
}],
 
"authentication": [
   
"did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#keys-1"
 
],
 
"assertionMethod": [
   
"did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#keys-1"
 
],
 
"service": [{
   
"id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#hstp",
   
"type": "HSTPEndpoint",
   
"serviceEndpoint": "https://hstp.example.com/hstpendpoint"
 
}]
}

6.  SWID Registration

SWIDs may be registered by the Entity in a “SWID Registry”, which is managed by a “Designated Authority”.

The following diagram describes the process of registering a SWID using a “SWID Registry”:

Figure 1 — Process of registering a SWID using a SWID Registry

Note that registration of SWIDs in a registry is an optional step that is separate from the creation of SWIDs. Most SWIDs will not be recorded in a centralized registry. SWIDs may be registered in a system of distributed, decentralized registries. The purpose of registration is to express membership, and to enable search.

Registration of a SWID returns a Verifiable Credential (VC) that expresses membership of an Entity in a Domain.

SWIDs are DIDs that can use any DID method, as long as the DIDs fulfill the requirements in Clause 4.

  • An Entity can “bring its own SWID”, which had already been created previously, according to the applicable DID method’s create function (DIF did-registration).

  • If an Entity does not yet have a SWID, the processes of creating and registering a SWID can be combined in a single flow. In this case, the did:swid DID method MUST be used, which has been specifically designed to meet the requirements of SWIDs for the Spatial Web. See SWF 4:2025 (0.1.0) for the specification.

To register a SWID in a “SWID Registry”, the execute function (DIF did-registration) is used.

EXAMPLE 1 — Request to register a SWID

HTTP POST to https://<swid-registry>/execute

{
 
"operation": [
    
"addToRegistry"
 
],
 
"operationData": [
    
{}
 
],
 
"did": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv#hstp",
 
"secret": {},
 
"options": {}
}

EXAMPLE 2 — Response

{
 
"didState": {
   
"state": "finished"
 
},
 
"operationResult": [{
   
"membershipCredential": {
      
...
   
}
 
}]
}

EXAMPLE 3 — Membership Credential

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://spatialwebfoundation.org/contexts/registry/"
  ],
  "type": [
    "VerifiableCredential",
    "DomainMembershipCredential"
  ],
  "issuer": {
    "id": "did:web:example.com",
    "type": [
      "Entity",
      "DomainAuthority"
    ]
  },
  "validFrom": "2025-07-01T00:00:00Z",
  "validUntil": "2034-08-31T23:59:59Z",
  "credentialSubject": {
    "id": "did:swid:zQmQoeG7u6XBtdXoek5p3aPoTjaSRemHAKrMcY2Hcjpe3jv",
    "type": [
      "Entity",
      "Domain",
      "Person"
    ],
    "roles": [
      "DomainMember",
      "LoyaltyProgramMember"
    ],
    "abilities": [ ... ]
  },
  "proof": {
    ...
  }
}

During the process of registering a SWID, the Entity MAY be required to prove control of its SWID’s associated public key, using DID Signing Requests (DIF did-registration) and Signing Responses (DIF did-registration).

EXAMPLE 4 — Signing Request

{
"jobId": "96202012-41d8-424a-85a9-3673bda6abc7",
"didState": {
"state": "action",
"action": "signPayload",
"signingRequest": {
"signingRequestRegistration": {
"kid": "#keys-1",
"alg": "EdDSA",
"purpose": "authentication",
"serializedPayload": "<-- base 64 encoded -->"
}
}
},
"didRegistrationMetadata": { ... },
"didDocumentMetadata": { ... }
}

EXAMPLE 5 — Signing Response

{
 
"jobId": "96202012-41d8-424a-85a9-3673bda6abc7",
 
"options": {
   
"clientSecretMode": true
 
},
 
"secret": {
   
"signingResponse": {
     
"signingRequestRegistration": {
       
"signature": "<-- base64 encoded -->"
     
}
   
}
 
},
 
"didDocument": {}
}

7.  SWID Registration (previous)

This section contains an earlier diagram which describes the process of registering SWIDs. This may be removed in a future version of this document.

Figure 2 — SWID Registration


Annex A
(informative)

Version log

The following lists the substantive changes in each version of the specification.

  • Version 0.1

    • Initial version


Bibliography

[1]  Spatial Web Foundation, Spatial Web Foundation. Spatial Web Foundation. https://spatialwebfoundation.org/.

[2]  DIF did-registration, Decentralized Identity Foundation, Cihan SAGLAM and Ahamed AZEEM. DID Registration. 2025. https://identity.foundation/did-registration.

[3]  SWF 4:2025 (0.1.0), Spatial Web Foundation. The did:swid DID Method. 2025. https://spatial-web-foundation.github.io/did-swid-spec/.

[4]  uniresolver.io, uniresolver.io. https://dev.uniresolver.io/.

[5]  godiddy.com, godiddy.com. godiddy.com. https://godiddy.com/.