# ResearchAdmissionRequest

[All API schemas](/api-reference/schemas/)

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>kind</code> | Yes | Constant <code>WHAT&#95;IF&#95;RESEARCH</code> | — |
| <code>question</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>2000</code> |
| <code>subject</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>subject.issuerIntentId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>subject.expectedResourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>experiment</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>experiment.schemaVersion</code> | Yes | Constant <code>research-experiment-v1</code> | — |
| <code>experiment.objective</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>experiment.objective.metric</code> | Yes | <code>string</code> | Allowed: <code>ENDING&#95;VALUE&#95;P50</code>, <code>MINIMUM&#95;DEPTH&#95;P5</code>, <code>GAS&#95;COST&#95;P50</code>, <code>DRAWDOWN&#95;P95</code>, <code>RESERVE&#95;BREACH&#95;PROBABILITY</code> |
| <code>experiment.objective.direction</code> | Yes | <code>string</code> | Allowed: <code>MAXIMIZE</code>, <code>MINIMIZE</code> |
| <code>experiment.seed</code> | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>200</code> |
| <code>experiment.pathCount</code> | Yes | Constant <code>2000</code> | — |
| <code>experiment.stepCount</code> | Yes | <code>integer</code> | Minimum: <code>1</code>; Maximum: <code>365</code> |
| <code>experiment.startingPortfolioQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;{0,77}$</code> |
| <code>experiment.startingDepthQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;{0,77}$</code> |
| <code>experiment.startingInventoryPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>experiment.baselineScenario.id</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>experiment.baselineScenario.name</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>experiment.baselineScenario.kind</code> | Yes | <code>string</code> | Allowed: <code>HISTORICAL&#95;REPLAY</code>, <code>BULL</code>, <code>BEAR</code>, <code>SIDEWAYS</code>, <code>LIQUIDITY&#95;CRISIS</code>, <code>TOKEN&#95;UNLOCK</code>, <code>LARGE&#95;BUYER</code>, <code>LARGE&#95;SELLER</code>, <code>LIQUIDITY&#95;WITHDRAWAL</code>, <code>GAS&#95;SPIKE</code>, <code>ORACLE&#95;OUTAGE</code>, <code>COMBINED</code> |
| <code>experiment.baselineScenario.driftPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>-1000000</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.volatilityPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.liquidityWithdrawalPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.oneSidedFlowPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.gasIncreasePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.oracleOutageStep</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>364</code> |
| <code>experiment.baselineScenario.historicalReturnPips</code> | No | Array of <code>integer</code> | Min items: <code>1</code>; Max items: <code>365</code> |
| <code>experiment.baselineScenario.protocolFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.platformFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.unlocks</code> | Yes | Array of <code>object</code> | Max items: <code>256</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.id</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,152}$</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.unlocksAt</code> | Yes | <code>string</code> | Format: <code>date-time</code>; Pattern: <code>^&#40;?:&#40;?:&#92;d&#92;d&#91;2468&#93;&#91;048&#93;&#124;&#92;d&#92;d&#91;13579&#93;&#91;26&#93;&#124;&#92;d&#92;d0&#91;48&#93;&#124;&#91;02468&#93;&#91;048&#93;00&#124;&#91;13579&#93;&#91;26&#93;00&#41;-02-29&#124;&#92;d{4}-&#40;?:&#40;?:0&#91;13578&#93;&#124;1&#91;02&#93;&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;3&#91;01&#93;&#41;&#124;&#40;?:0&#91;469&#93;&#124;11&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;30&#41;&#124;&#40;?:02&#41;-&#40;?:0&#91;1-9&#93;&#124;1&#92;d&#124;2&#91;0-8&#93;&#41;&#41;&#41;T&#40;?:&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#40;?::&#91;0-5&#93;&#92;d&#40;?:&#92;.&#92;d+&#41;?&#41;?&#40;?:Z&#124;&#40;&#91;+-&#93;&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#41;&#41;&#41;$</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.tokenAmount</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;{0,77}$</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.recipientCategory</code> | Yes | <code>string</code> | Allowed: <code>TEAM</code>, <code>INVESTOR</code>, <code>COMMUNITY</code>, <code>TREASURY</code>, <code>ECOSYSTEM</code>, <code>OTHER</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.expectedSaleParticipationPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.confidencePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.correlationGroup</code> | No | <code>string</code> | Min length: <code>1</code>; Max length: <code>120</code> |
| <code>experiment.baselineScenario.unlocks&#91;&#93;.evidenceHash</code> | No | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |
| <code>experiment.alternatives</code> | Yes | Array of <code>object</code> | Max items: <code>3</code> |
| <code>experiment.alternatives&#91;&#93;.label</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>120</code> |
| <code>experiment.alternatives&#91;&#93;.scenario</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>experiment.alternatives&#91;&#93;.scenario.id</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.name</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.kind</code> | Yes | <code>string</code> | Allowed: <code>HISTORICAL&#95;REPLAY</code>, <code>BULL</code>, <code>BEAR</code>, <code>SIDEWAYS</code>, <code>LIQUIDITY&#95;CRISIS</code>, <code>TOKEN&#95;UNLOCK</code>, <code>LARGE&#95;BUYER</code>, <code>LARGE&#95;SELLER</code>, <code>LIQUIDITY&#95;WITHDRAWAL</code>, <code>GAS&#95;SPIKE</code>, <code>ORACLE&#95;OUTAGE</code>, <code>COMBINED</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.driftPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>-1000000</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.volatilityPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.liquidityWithdrawalPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.oneSidedFlowPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.gasIncreasePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.oracleOutageStep</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>364</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.historicalReturnPips</code> | No | Array of <code>integer</code> | Min items: <code>1</code>; Max items: <code>365</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.protocolFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.platformFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks</code> | Yes | Array of <code>object</code> | Max items: <code>256</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.id</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,152}$</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.unlocksAt</code> | Yes | <code>string</code> | Format: <code>date-time</code>; Pattern: <code>^&#40;?:&#40;?:&#92;d&#92;d&#91;2468&#93;&#91;048&#93;&#124;&#92;d&#92;d&#91;13579&#93;&#91;26&#93;&#124;&#92;d&#92;d0&#91;48&#93;&#124;&#91;02468&#93;&#91;048&#93;00&#124;&#91;13579&#93;&#91;26&#93;00&#41;-02-29&#124;&#92;d{4}-&#40;?:&#40;?:0&#91;13578&#93;&#124;1&#91;02&#93;&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;3&#91;01&#93;&#41;&#124;&#40;?:0&#91;469&#93;&#124;11&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;30&#41;&#124;&#40;?:02&#41;-&#40;?:0&#91;1-9&#93;&#124;1&#92;d&#124;2&#91;0-8&#93;&#41;&#41;&#41;T&#40;?:&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#40;?::&#91;0-5&#93;&#92;d&#40;?:&#92;.&#92;d+&#41;?&#41;?&#40;?:Z&#124;&#40;&#91;+-&#93;&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#41;&#41;&#41;$</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.tokenAmount</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;{0,77}$</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.recipientCategory</code> | Yes | <code>string</code> | Allowed: <code>TEAM</code>, <code>INVESTOR</code>, <code>COMMUNITY</code>, <code>TREASURY</code>, <code>ECOSYSTEM</code>, <code>OTHER</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.expectedSaleParticipationPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.confidencePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.correlationGroup</code> | No | <code>string</code> | Min length: <code>1</code>; Max length: <code>120</code> |
| <code>experiment.alternatives&#91;&#93;.scenario.unlocks&#91;&#93;.evidenceHash</code> | No | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |
| <code>experiment.interpretation</code> | Yes | Constant <code>CURRENT&#95;DATA&#95;HYPOTHETICAL&#95;MODELED&#95;STEPS</code> | — |
| <code>experiment.limitationsAccepted</code> | Yes | Constant <code>true</code> | — |

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

Exact definition: <code>#/components/schemas/ResearchAdmissionRequest</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).