Saturn EDCs (version 0.11.x and later) introduce a new protocol version and updated policy structure. These changes follow the Catena-X standard: CX-0018 Dataspace Connectivity v4.2.
This update is important for Dataspace OS API users, as it affects how the Catalog is queried, how contracts are negotiated and how policies are configured for Saturn EDCs. Find information about how to upgrade your EDC here.
Changes for Data Provider
The main changes for data providers occur with the schema for defining policies. Making use of the Policy Builder helps with building consistent policies.
Access Policy:
{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "PolicyDefinition",
"@id": "membership-deg",
"policy": {
"@type": "Set",
"permission": [
{
"action": "access",
"constraint": {
"leftOperand": "BusinessPartnerNumber",
"operator": "isAnyOf",
"rightOperand": ["BPN6789", "..."]
}
}
]
}
}
Usage Policy:
{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "PolicyDefinition",
"@id": "{{POLICY_ID}}",
"policy": {
"@type": "Set",
"permission": [
{
"action": "use",
"constraint": {
"and": [
{
"leftOperand": "FrameworkAgreement",
"operator": "eq",
"rightOperand": "DataExchangeGovernance:1.0"
},
{
"leftOperand": "UsagePurpose",
"operator": "isAnyOf",
"rightOperand": ["<value>"]
}
]
}
}
]
}
}
Key changes:
The following updates apply compared to previous (Jupiter) EDC versions:
New Operators: The BusinessPartnerNumber and UsagePurpose constraints schema now allows only
isAnyOfandisNoneOfoperators, and requires the right operand to be an array of BPN-Ls.Replaces Jupiter
eqoperators
Updated context. Saturn defines the
odrlnamespace as"https://w3id.org/dspace/2025/1/odrl-profile.jsonld"and the policy namespace as"https://w3id.org/catenax/2025/9/policy/context.jsonld".
Changes for Data Consumer
Catalog Query for Saturn EDCs
The Catalog must now be requested using the updated protocol version and endpoint structure:
POST: {{Consumer-Saturn-EDC-URL}}/management/v3/catalog/request
{
"@context": [
{
"@vocab":"https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "CatalogRequest",
"counterPartyId": "did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}",
"counterPartyAddress": "{{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1",
"protocol": "dataspace-protocol-http:2025-1",
"querySpec": {
"offset": 0,
"limit": 50,
"sortField": "http://purl.org/dc/terms/type",
"sortOrder": "DESC",
"filterExpression": [
]
}
}Contract Negotiation for Saturn EDCs
Contract negotiations must also be requested using the updated protocol version:
{
"@context": [
"https://w3id.org/dspace/2025/1/odrl-profile.jsonld",
"https://w3id.org/catenax/2025/9/policy/context.jsonld",
{
"@vocab": "https://w3id.org/edc/v0.0.1/ns/"
}
],
"@type": "ContractRequest",
"counterPartyAddress": "{{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1",
"protocol": "dataspace-protocol-http:2025-1",
"policy": {
"@type": "Offer",
"@id": "{{OFFER_ID}}",
"target": "{{ASSET_ID}}",
"assigner": "did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}",
"permission": [],
"prohibition": [],
"obligation": []
}
}
Key Changes:
The following updates apply compared to previous (Jupiter) EDC versions:
Protocol version updated
New value:
"dataspace-protocol-http:2025-1"Replaces Jupiter value:
"dataspace-protocol-http"
Counter Party Address updated
Saturn EDCs now require the versioned endpoint:
/2025-1
Counter Party ID/assigner format changed
Now uses a DID-based identifier:
did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}}Instead of using only the BPNL (as in Jupiter EDCs)
How to Determine the Provider EDC Version
A Provider exposes a public version discovery endpoint:
GET: {{Provider-Saturn-EDC-URL}}/api/v1/dsp/.well-known/dspace-versionNo authorization is required.
Example response:
{
"protocolVersions": [
{
"version": "v0.8",
"path": "/",
"binding": "HTTPS"
},
{
"version": "2025-1",
"path": "/2025-1",
"binding": "HTTPS"
}
]
}v0.8 → Jupiter EDCs
2025-1 → Saturn EDCs
This means:
If the Provider supports
2025-1, the Consumer must use/2025-1endpoints.If only
v0.8is supported, endpoints (/) are used.
Compatibility Note
EDC Communication would work in the following way:
Consumer | Provider | Protocol | CounterPartyAddress | CounterPartyId |
Saturn | Saturn | dataspace-protocol-http:2025-1 | {{Provider-Saturn-EDC-URL}}/api/v1/dsp/2025-1 | did:web:portal-backend.beta.cofinity-x.com:api:administration:staticdata:did:{{Provider-BPNL}} |
Saturn | Jupiter | dataspace-protocol-http | {{Provider-EDC-URL}}/api/v1/dsp | {{Provider-BPNL}} |
Jupiter | Saturn | dataspace-protocol-http | {{Provider-EDC-URL}}/api/v1/dsp | {{Provider-BPNL}} |
If you would like to test the connection of your Saturn EDC against a Cofinity-X Saturn EDC, find the details here.
