mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
113 lines
2.6 KiB
TeX
113 lines
2.6 KiB
TeX
\section{DID Method Specification}
|
|
|
|
|
|
\subsection{Method Name}
|
|
|
|
The method name is \texttt{lux}.
|
|
|
|
\subsection{Method-Specific Identifier}
|
|
|
|
The method-specific identifier is a Lux blockchain address in one of the following formats:
|
|
|
|
\begin{itemize}
|
|
\item Bech32 (X-Chain/P-Chain): \texttt{[XP]-lux1[a-z0-9]\{38\}}
|
|
\item Hex (C-Chain): \texttt{0x[0-9a-fA-F]\{40\}}
|
|
\end{itemize}
|
|
|
|
\subsection{DID Syntax}
|
|
|
|
\begin{verbatim}
|
|
did-lux = "did:lux:" network ":" address
|
|
network = "mainnet" / "testnet" / "local" / appchain-id
|
|
address = bech32-address / hex-address
|
|
bech32-address = ([XP] "-lux1") 1*38(ALPHA / DIGIT)
|
|
hex-address = "0x" 40(HEXDIG)
|
|
appchain-id = 32(base58-char)
|
|
\end{verbatim}
|
|
|
|
\subsection{CRUD Operations}
|
|
|
|
\subsubsection{Create}
|
|
|
|
\textbf{Request}:
|
|
\begin{lstlisting}[language=bash]
|
|
POST /api/did/create
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"address": "X-lux1qzr2v3dhq0hgqkgdwq36z0z7eqkh5x2g5m",
|
|
"publicKey": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV",
|
|
"verificationMethod": "Ed25519VerificationKey2020"
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\textbf{Response}:
|
|
\begin{lstlisting}[language=json]
|
|
{
|
|
"did": "did:lux:X-lux1qzr2v3dhq0hgqkgdwq36z0z7eqkh5x2g5m",
|
|
"didDocument": { /* Full DID Document */ },
|
|
"txHash": "0xabc...def" // If on-chain registration
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsubsection{Read (Resolve)}
|
|
|
|
\textbf{Request}:
|
|
\begin{lstlisting}[language=bash]
|
|
GET /api/did/resolve/did:lux:X-lux1qzr2v3dhq0hgqkgdwq36z0z7eqkh5x2g5m
|
|
\end{lstlisting}
|
|
|
|
\textbf{Response}:
|
|
\begin{lstlisting}[language=json]
|
|
{
|
|
"didDocument": { /* Full DID Document */ },
|
|
"didResolutionMetadata": {
|
|
"contentType": "application/did+ld+json",
|
|
"retrieved": "2025-10-28T12:00:00Z"
|
|
},
|
|
"didDocumentMetadata": {
|
|
"created": "2020-10-20T10:30:00Z",
|
|
"updated": "2025-10-15T14:22:00Z",
|
|
"versionId": "5"
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsubsection{Update}
|
|
|
|
\textbf{Request}:
|
|
\begin{lstlisting}[language=bash]
|
|
POST /api/did/update
|
|
Content-Type: application/json
|
|
Authorization: Bearer <jwt-signed-by-did-key>
|
|
|
|
{
|
|
"did": "did:lux:X-lux1qzr2v3dhq0hgqkgdwq36z0z7eqkh5x2g5m",
|
|
"updates": [
|
|
{
|
|
"action": "addVerificationMethod",
|
|
"verificationMethod": {
|
|
"id": "#key-4",
|
|
"type": "Dilithium3VerificationKey2025",
|
|
"publicKeyMultibase": "zMxY...PQ-KEY"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsubsection{Deactivate}
|
|
|
|
\textbf{Request}:
|
|
\begin{lstlisting}[language=bash]
|
|
POST /api/did/deactivate
|
|
Content-Type: application/json
|
|
Authorization: Bearer <jwt-signed-by-did-key>
|
|
|
|
{
|
|
"did": "did:lux:X-lux1qzr2v3dhq0hgqkgdwq36z0z7eqkh5x2g5m",
|
|
"reason": "User requested account deletion"
|
|
}
|
|
\end{lstlisting}
|
|
|