Org

Prove possession and activate a pending wrapper

The activation half of wrapper custody: after creating a PENDING wrapper, the client reads the STORED blob back, unwraps those exact bytes locally, compares the FULL derived public key against the published one, and answers the ECDH key-confirmation challenge from the create response — proof = base64url(HMAC-SHA256(X25519(member_scalar, challenge.epk), possession_message)). Only a holder of the member private key can answer; the server stores only a hash of the expected proof and learns no key material. Activation is atomic: a pending KEY activates with its first wrapper, and a first wrapper on a legacy-custody key flips the scheme to wrapped_legacy_scalar_v1 (the migration cutover). Optional replace_wrapper_id revokes the named old wrapper in the SAME transaction — the recovery-code replacement rule (old code stays valid until the new one is verified). Challenges are single-use and expire in 15 minutes; nothing pending ever counts toward reads, scoping, or recovery posture.

post/agent/v1/source-access/wrappers/{wrapper_id}/activate

Request

  • Base URL: https://api.run402.com
  • URL: https://api.run402.com/agent/v1/source-access/wrappers/{wrapper_id}/activate
  • Auth: one of:
    • API key in header SIGN-IN-WITH-X
    • HTTP bearer

Path parameters

wrapper_idstring uuid required

Headers

SIGN-IN-WITH-Xstring required

SIWX auth header — base64-encoded JSON payload containing a signed CAIP-122 (EIP-4361) message. See https://docs.x402.org/extensions/sign-in-with-x.

Request body

proofstring required

base64url possession proof (see description).

replace_wrapper_idstring uuid

Optional: an ACTIVE wrapper of the same key to revoke atomically with this activation (recovery-code replacement).

Response

Activated

wrapper_idstring uuid
kind'webauthn_prf' | 'recovery_code'
state'active'
key_statestring
custody_scheme'wrapped_legacy_scalar_v1' | 'wrapped_random_v1'
activated_atstring date-time

Changes

No recorded changes to this operation across all 1 revision of this API.