diff --git a/docs/guide/request-signing.md b/docs/guide/request-signing.md
index 15e521a..563f736 100644
--- a/docs/guide/request-signing.md
+++ b/docs/guide/request-signing.md
@@ -52,6 +52,38 @@ Keys are stored in two separate Fastly stores:
└─────────────────────┘
```
+### Signing Flow (Prebid)
+
+The following diagram shows how request signing works for Prebid auction requests, from the Trusted Server through to DSP verification:
+
+```mermaid
+sequenceDiagram
+ participant TS as Trusted Server
(Publisher Domain)
+ participant PBS as Prebid Server
+ participant DSP as DSP
+
+ Note over TS: Signs request using
Ed25519 private key
+
+ TS->>PBS: POST /openrtb2/auction
+ Note right of TS: OpenRTB body includes
ext.trusted_server {
signature,
kid,
request_host,
request_scheme
}
+
+ PBS->>DSP: POST /openrtb2/auction
+ Note right of PBS: Forwards full OpenRTB body
including ext.trusted_server
+
+ Note over DSP: Extracts signature, kid,
and site.domain from request
+
+ opt JWKS not cached (10 min TTL)
+ DSP->>TS: GET /.well-known/trusted-server.json
+ TS-->>DSP: JWKS response
+ Note left of DSP: {keys: [{
kid,
kty: "OKP",
crv: "Ed25519",
x: "public_key"
}]}
+ end
+
+ Note over DSP: Looks up public key by kid
Verifies Ed25519 signature
over request
+
+ DSP-->>PBS: Bid Response
+ PBS-->>TS: Bid Response
+```
+
## Signing Requests
### Basic Usage