Klineo/Docs
Open app ↗

API schemas

ProjectControlChallengeWrite

All API schemas

object — Additional properties rejected

Field Required at this level Type Description and constraints
record Yes object Additional properties rejected
record.schemaVersion Yes Constant persisted-project-control-challenge-v1 —
record.challenge Yes object Additional properties rejected
record.challenge.organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.challenge.projectId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.challenge.projectResourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
record.challenge.chainId Yes integer Maximum: 9007199254740991; Exclusive minimum: 0
record.challenge.genesisHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.challenge.token Yes string Pattern: ^0x[0-9a-f]{40}$
record.challenge.schemaVersion Yes Constant project-control-challenge-v1 —
record.challenge.actorId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.challenge.controller Yes string Pattern: ^0x[0-9a-f]{40}$
record.challenge.custodyAccount Yes string Pattern: ^0x[0-9a-f]{40}$
record.challenge.attestationHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.challenge.nonce Yes string Pattern: ^0x[0-9a-f]{64}$
record.challenge.audience Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.challenge.deployment Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.challenge.purpose Yes Constant PROJECT_TREASURY_READ_ACCESS_ONLY —
record.challenge.issuedAt Yes integer Minimum: 0; Maximum: 9007199254740991
record.challenge.expiresAt Yes integer Minimum: 0; Maximum: 9007199254740991
record.identity Yes object Additional properties rejected
record.identity.payload Yes object Additional properties rejected
record.identity.payload.organizationId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.identity.payload.projectId Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.identity.payload.projectResourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
record.identity.payload.chainId Yes integer Maximum: 9007199254740991; Exclusive minimum: 0
record.identity.payload.genesisHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.identity.payload.token Yes string Pattern: ^0x[0-9a-f]{40}$
record.identity.payload.schemaVersion Yes Constant project-identity-attestation-v1 —
record.identity.payload.publisher Yes object Additional properties rejected
record.identity.payload.publisher.id Yes string Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$
record.identity.payload.publisher.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
record.identity.payload.controller Yes string Pattern: ^0x[0-9a-f]{40}$
record.identity.payload.issuedAt Yes integer Minimum: 0; Maximum: 9007199254740991
record.identity.payload.expiresAt Yes integer Minimum: 0; Maximum: 9007199254740991
record.identity.payloadHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.identity.signature Yes string Pattern: ^[A-Za-z0-9+/]{86}==$
record.anchor Yes object Additional properties rejected
record.anchor.chainId Yes integer Maximum: 9007199254740991; Exclusive minimum: 0
record.anchor.genesisHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.anchor.blockNumber Yes string Pattern: ^(0|[1-9][0-9]{0,77})$
record.anchor.blockHash Yes string Pattern: ^0x[0-9a-f]{64}$
record.anchor.finality Yes Constant FINALIZED —
record.resourceVersion Yes string Pattern: ^0x[0-9a-f]{64}$
record.recordedAt Yes string Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
replayed Yes boolean —

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: #/components/schemas/ProjectControlChallengeWrite in the OpenAPI contract.