# ResearchTrialInput

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

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

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>schemaVersion</code> | Yes | Constant <code>agent-research-trial-input-v1</code> | — |
| <code>organizationId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>runId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>trialKey</code> | Yes | <code>string</code> | Allowed: <code>baseline</code>, <code>alternative-1</code>, <code>alternative-2</code>, <code>alternative-3</code> |
| <code>label</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>120</code> |
| <code>protocolHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>inputHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>state</code> | Yes | <code>string</code> | Allowed: <code>QUEUED</code>, <code>RUNNING</code>, <code>COMPLETED</code>, <code>FAILED</code>, <code>CANCELLED</code> |
| <code>chargedComputeUnits</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,7}&#41;$</code> |
| <code>failureCode</code> | Yes | At least one of: <code>string</code>; <code>null</code> | — |
| <code>artifactHash</code> | Yes | At least one of: <code>string</code>; <code>null</code> | — |
| <code>recordedAt</code> | Yes | At least one of: <code>string</code>; <code>null</code> | — |
| <code>input</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>input.seed</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>256</code> |
| <code>input.pathCount</code> | Yes | At least one of: Constant <code>2000</code>; Constant <code>10000</code> | — |
| <code>input.stepCount</code> | Yes | <code>integer</code> | Minimum: <code>1</code>; Maximum: <code>365</code> |
| <code>input.targetTradeSizeQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;&#42;$</code> |
| <code>input.startingPortfolioQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;&#42;$</code> |
| <code>input.startingDepthQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;&#42;$</code> |
| <code>input.startingInventoryPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>input.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>input.scenario.name</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>input.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>input.scenario.driftPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>-1000000</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.volatilityPipsPerStep</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.liquidityWithdrawalPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.oneSidedFlowPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.gasIncreasePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.oracleOutageStep</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>364</code> |
| <code>input.scenario.historicalReturnPips</code> | No | Array of <code>integer</code> | Min items: <code>1</code>; Max items: <code>365</code> |
| <code>input.scenario.protocolFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.platformFeePips</code> | No | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.unlocks</code> | Yes | Array of <code>object</code> | Max items: <code>256</code> |
| <code>input.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>input.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>input.scenario.unlocks&#91;&#93;.tokenAmount</code> | Yes | <code>string</code> | Pattern: <code>^&#91;1-9&#93;&#91;0-9&#93;&#42;$</code> |
| <code>input.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>input.scenario.unlocks&#91;&#93;.expectedSaleParticipationPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.unlocks&#91;&#93;.confidencePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.scenario.unlocks&#91;&#93;.correlationGroup</code> | No | <code>string</code> | Min length: <code>1</code>; Max length: <code>120</code> |
| <code>input.scenario.unlocks&#91;&#93;.evidenceHash</code> | No | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |
| <code>input.variants</code> | Yes | Array of <code>object</code> | Min items: <code>5</code>; Max items: <code>5</code> |
| <code>input.variants&#91;&#93;.kind</code> | Yes | <code>string</code> | Allowed: <code>CURRENT</code>, <code>RECOMMENDED</code>, <code>CONSERVATIVE</code>, <code>CAPITAL&#95;EFFICIENT</code>, <code>EMERGENCY</code> |
| <code>input.variants&#91;&#93;.requiredCapitalQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.deployableCapitalQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.stableReserveQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.emergencyReserveQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.rangeWidthPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.variants&#91;&#93;.expectedSlippagePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.variants&#91;&#93;.expectedFeeIncomeLowQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.expectedFeeIncomeHighQuote</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;&#42;&#41;$</code> |
| <code>input.variants&#91;&#93;.inventoryExposurePips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.variants&#91;&#93;.maximumDailyTurnoverPips</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>1000000</code> |
| <code>input.variants&#91;&#93;.satisfiesIntent</code> | Yes | <code>boolean</code> | — |
| <code>input.variants&#91;&#93;.reasons</code> | Yes | Array of <code>string</code> | Max items: <code>64</code> |
| <code>financialAuthority</code> | Yes | Constant <code>false</code> | — |
| <code>publicationAuthority</code> | Yes | Constant <code>false</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/ResearchTrialInput</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).