{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"ap",
"treasury",
"trip",
"market-research",
"payroll",
"multi-chain-concierge",
"custom"
]
},
"display_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"amount_cap_cents_per_tx": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"amount_cap_cents_per_day": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"amount_cap_cents_lifetime": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"step_up_amount_cents": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"chain_allowlist": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"eth",
"base",
"arb",
"op",
"polygon",
"sol"
]
}
},
"time_window_end": {
"type": "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))$"
},
"idempotency_key": {
"type": "string",
"minLength": 8,
"maxLength": 128
}
},
"required": [
"purpose",
"display_name",
"chain_allowlist",
"idempotency_key"
],
"additionalProperties": false
}