Base URL is environment-specific and served by the signup-service app-api. Contact
your World ID point of contact for environment endpoints and access.
Credential refresh
POST
/api/v1/refresh
multipart/form-data
Request
Headers
Query parameters
Form fields (always required)
PCP form fields (required only when submitting a PCP)
Include all fields below when refreshing with a Personal Custody Package.Example (credential-only refresh)
Example (refresh with PCP)
Response
Success response
Error responses
If PCP validation fails, the endpoint returns an error status with
PCP_VALIDATION_FAILED.
Credential object format
Thecredential response field is a base64-encoded JSON representation of the World ID Credential object defined in world-id-protocol/crates/primitives/src/credential.rs.
Example (decoded)
Field definitions
Field representations
- FieldElement values (
sub,claims,associated_data_hash) are hex strings with a0xprefix and 64 hex characters. - Issuer public key (
issuer.pk) is serialized as[x, y]decimal strings for BabyJubJub affine coordinates. - Signature is hex-encoded compressed bytes (no
0xprefix).
PoH credential semantics
- The user first obtains an Orb credential (currently a PCP in v2.3 format).
claim[0]is a commitment to the Orb credential, currentlyH(hashes.json).- When refreshing without a PCP,
claims[0]is derived from issuer-defined refresh data (a hash ofidCommitment,sub, and a timestamp). - The PoH credential has no associated data, so
associated_data_hashis the zero field element. - The PoH credential subject is blinded and differs from the Orb credential subject.
- The issuer may require a proof for the requested
subto prevent bricking an identity.