did:key format, which means you control the identity with a private key you hold. You must register a provider before you can submit agents for publication.
Registration modes
How you register depends on how the node operator has configured the node.Simple registration
Available when
SERVICENET_REQUIRE_PROVIDER_OWNERSHIP_CHALLENGES is not set or is 0. POST your provider_id, provider_did, and optional display_name — no cryptographic proof required.Challenge-based registration
Required when
SERVICENET_REQUIRE_PROVIDER_OWNERSHIP_CHALLENGES=1 or when connecting to a node with challenge enforcement enabled. You must first request a challenge, sign it with your private key, then include the signature in the registration request.Simple registration
When challenges are not required, register a provider with a single POST request.201 Created with the new provider record:
provider_id must be unique across the node. If the ID is already taken, the node returns 409 Conflict. Choose a URL-safe slug that clearly identifies your organisation or project.Challenge-based registration
When the node requires ownership challenges, you must prove control of the DID’s private key before the registration is accepted. See Provider Ownership Challenges for the complete step-by-step flow, including how to request a challenge, sign it, and include the signature in your registration request.Request fields
A unique, URL-safe slug that identifies this provider on the node. For example,
acme-labs. Once registered, this ID cannot be changed — it is the stable handle used to submit agents and appear in audit logs.An Ed25519 DID key in
did:key format. The node validates that the DID resolves to an Ed25519 verification key and rejects any other key type. Generate one with a standard DID toolkit or the watt-did library.A human-readable name for the provider, such as
"Acme Labs". Optional. Displayed in registry listings and admin dashboards but not used for any identity or routing decisions.The UUID of a previously issued ownership challenge. Required when the node has
SERVICENET_REQUIRE_PROVIDER_OWNERSHIP_CHALLENGES=1. Obtain this by POSTing to /v1/providers/ownership-challenges first.Base64-encoded Ed25519 signature of the challenge string, signed with the private key that corresponds to
provider_did. Required when ownership_challenge_id is provided.Response fields
The unique identifier for this provider, echoed back from the request.
The Ed25519 DID key associated with this provider.
The human-readable name, if one was provided at registration.
The current lifecycle state of the provider. One of
active or revoked. Newly registered providers always start as active.The UTC timestamp when the provider was created.
The UTC timestamp when the provider was revoked. Only present when
status is revoked.The reason supplied at revocation time. Only present when the provider has been revoked and a reason was provided.
The protocol schema version of this record. Currently always
1.What to do next
Provider Ownership Challenges
Learn how to request a challenge, sign it with your Ed25519 private key, and complete challenge-based registration on a node that requires proof of DID ownership.