Blockfrost responses that the provider schemas reject, found by checking the official OpenAPI spec (blockfrost/openapi at 05c6d61).
- Nullable protocol parameters. The spec marks 15 fields of
/epochs/latest/parameters as nullable: max_val_size, cost_models, cost_models_raw, price_mem, price_step, max_tx_ex_mem, max_tx_ex_steps, max_block_ex_mem, max_block_ex_steps, collateral_percent, max_collateral_inputs, coins_per_utxo_size, min_fee_ref_script_cost_per_byte, drep_deposit and gov_action_deposit (src/schemas/epochs/epoch_param_content.yaml). The schema (packages/evolution/src/sdk/provider/internal/Blockfrost.ts:29-50) uses Schema.optional, which rejects null, so one null fails getProtocolParameters. Fix: Schema.optionalWith(X, { nullable: true }). The existing defaults then keep working.
- Native scripts.
/scripts/{hash}/cbor returns cbor: null for timelock scripts (src/schemas/scripts/script_cbor.yaml:3-6), and /scripts/{hash} returns serialised_size: null for them (script.yaml:12-16). The SDK requires both (BlockfrostEffect.ts:175,182), so native reference scripts on UTxOs silently become scriptRef: undefined. Fix: accept null, and rebuild native scripts from /scripts/{hash}/json.
- Stale fields. The spec has no
utxo_cost_per_word (Blockfrost.ts:30), deprecates tx_index (:71), and leaves consumed_by_tx (:124) out of its required list. The SDK reads none of them. Fix: remove them from the schemas.
Blockfrost responses that the provider schemas reject, found by checking the official OpenAPI spec (
blockfrost/openapiat 05c6d61)./epochs/latest/parametersasnullable:max_val_size,cost_models,cost_models_raw,price_mem,price_step,max_tx_ex_mem,max_tx_ex_steps,max_block_ex_mem,max_block_ex_steps,collateral_percent,max_collateral_inputs,coins_per_utxo_size,min_fee_ref_script_cost_per_byte,drep_depositandgov_action_deposit(src/schemas/epochs/epoch_param_content.yaml). The schema (packages/evolution/src/sdk/provider/internal/Blockfrost.ts:29-50) usesSchema.optional, which rejectsnull, so one null failsgetProtocolParameters. Fix:Schema.optionalWith(X, { nullable: true }). The existing defaults then keep working./scripts/{hash}/cborreturnscbor: nullfor timelock scripts (src/schemas/scripts/script_cbor.yaml:3-6), and/scripts/{hash}returnsserialised_size: nullfor them (script.yaml:12-16). The SDK requires both (BlockfrostEffect.ts:175,182), so native reference scripts on UTxOs silently becomescriptRef: undefined. Fix: acceptnull, and rebuild native scripts from/scripts/{hash}/json.utxo_cost_per_word(Blockfrost.ts:30), deprecatestx_index(:71), and leavesconsumed_by_tx(:124) out of its required list. The SDK reads none of them. Fix: remove them from the schemas.