All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project will adhere to Semantic Versioning once it reaches maturity in v1.
Unreleased changes are in the master branch.
- TLS features to Rust API client (upgraded generator from
7.12.0to7.20.0,reqwestto0.13+)
- Pagination parameters (
count,page,order) for governance proposal withdrawals endpoints/governance/proposals/:tx_hash/:cert_index/withdrawals/governance/proposals/:gov_action_id/withdrawals
- New
tx_slot,block_time, andblock_heightfields in/accounts/:stake_address/delegations,/accounts/:stake_address/registrations,/accounts/:stake_address/withdrawals, and/accounts/:stake_address/mirsresponses - New
treasury_donationfield in/txs/:tx_hashresponse
- New
registeredfield in/accounts/:stake_addressresponse indicating whether the stake address is currently registered
- description for
activefield in/accounts/:stake_addressresponse to clarify it represents delegation state
- Exposed off-chain metadata fetch errors in metadata responses in
/governance/dreps/:drep_id/metadata- Error object structure:
{ "code": "HASH_MISMATCH" | "CONNECTION_ERROR" | "HTTP_RESPONSE_ERROR" | "DECODE_ERROR" | "SIZE_EXCEEDED" | "UNKNOWN_ERROR", "message": "Human-readable description of the error" }
- If metadata are available, the
errorfield is omitted
- Error object structure:
/network/erasnumber format- Added PlutusV3 to the type field of the script object, to match the actual API response types
- New endpoint for retrieving transactions linked to a stake account
/accounts/:stake_address/transactions
- Included proposal reference fields in
/governance/drep/:drep_id/votes- Each vote now includes
proposal_id,proposal_tx_hashandproposal_cert_index
- Each vote now includes
- Description of
tx_hashandcert_indexin in/governance/drep/:drep_id/votes
- Support for Governance Action Identifier (CIP-129)
- New endpoints for querying with Gov Action ID :
/governance/proposals/:gov_action_id - Proposal response now includes an
idfield containing the governance action identifier
- New endpoints for querying with Gov Action ID :
- Exposed dbsync off-chain metadata fetch errors in metadata responses
- Applies to endpoints:
/pools/:pool_id/metadata/pools/extended/governance/proposals/:gov_action_id/metadata
- Error object structure:
{ "code": "HASH_MISMATCH" | "CONNECTION_ERROR" | "HTTP_RESPONSE_ERROR" | "DECODE_ERROR" | "SIZE_EXCEEDED" | "UNKNOWN_ERROR", "message": "Human-readable description of the error" }
- If metadata are available, the
errorfield is omitted
- Applies to endpoints:
- Added action
updatedto DReps updates/accounts/:drep_id/updates
- Added support for calidus keys (CIP-0151) in
/pools/:pool_idendpoint
/governance/proposals/:tx_hash/:cert_index: fixed description fordropped_epoch- cleaned up metadata in
/pools/extendedby removing unnecessary required fields
- nix-shell commands
- rust types
- exposed new attributes
live_saturation,blocks_minted,declared_pledge,margin_cost,fixed_costandmetadatain/pools/extended
/blocks/:hash_or_number/txs/cborendpoint
/blocks/latest/txs/cborendpoint- exposed new attributes
live_saturation,blocks_minted,declared_pledge,margin_cost,fixed_costandmetadatain/pools/extended
- Allow all proposal parameters to be nullable, remove unused
nonceparam
- New fields in
/governance/dreps/:drepretired: Indicates the registration state of the DRep. Set totrueif the DRep has been deregistered; otherwise,false.expired: , Indicates whether the DRep has been inactive for a consecutive number of epochs (determined by a epoch parameterdrep_activity)last_active_epoch: Epoch of the most recent action - registration, update, deregistration or voting
- Deprecated fields in
/governance/dreps/:drepactive: Superseded by the newretiredandexpiredactive_epoch: Replaced bylast_active_epoch
- Filecoin support in IPFS endpoints
versionquery param in/utils/txs/evaluateand/utils/txs/evaluate/utxosendpoint
- IPFS state enum
/account/:stake_addr/utxosfor retrieving utxos associated with a stake account
- new UI for the API Reference
- parsing version 3 of
CIP68metadata
- updated dependencies
- allow CIP25v1 metadata encoding where asset name not utf8 encoded (hex asset name = lookup key in json map)
- Ogmios API Reference URL
/txs/{hash}/utxosconsumed_by_txfield
/epochs/{number}/parametersand/epochs/latest/parameterscost_models_rawfield, list variant ofcost_modelswithout name mapping
- Naming of
pvtpp_security_group->pvt_p_p_security_group, the old field is preserved but marked as deprecated. /governance/proposals/{tx_hash}/{cert_index}/parameters- Example and description of
cost_models(these matchcost_models_rawof epoch parameters)
- Example and description of
- reverted Mithril support
- CIP-1964 support
- Mithrill support
- raw tx CBOR
/txs/{hash}/cborendpoint
/epochs/{number}/parametersand/epochs/latest/parametersmin_utxofield deprecated, prefercoins_per_utxo_sizefor Alonzo and later eras
- Parsing version 2 of
CIP68metadata
tx_metadata_label_jsonandscript_jsoncompatibility with fast-json-stringify for non-object/primitive types (eg. string)
/txs/{hash}/required_signersendpoint- rust models definitions
- Updated deps - node 18 now required due to node-cbor pkg
- HTML table is SDKs
- requestBody for
/tx/submitand/ipfs/addendpoint - CODE language for
curlexamples - request body for
/utils/txs/evaluateendpoint
- downgrade to OpenAPI 3.0.0
- exported patched fastify-compatible JSONSchema to
json-schema.json
- URL for downloading OpenAPI spec
ajvas dev instead of devDep in package.json
- CIP68 RFT 444 support
onchain_metadata_extrain asset schema
- unify error message format order
{status_code, message, error}->{error, message, status_code}
getSchemaForEndpointcompatibility with fast-json-stringify (array intypenot supported except for["<type>", "null"], fix for nested arbitrary objects)- generated ts types and schema for
/ipfs/gateway/{IPFS_path}
nutlink/{address}metadata type
/utils/txs/evaluate/utxosmethod- initial support for POST endpoints to
getSchemaForEndpoint - additional IPFS description
- Migrated to OpenAPI 3.1.0
- named error responses from OpenAPI spec (overusage_limit, mempool_full, pin_queue_full, autobanned, not_found, internal_server_error, unauthorized_error, bad_request).
- CIP25v2 metadata validation improvements (gracefully handling of CIP25v1 metadata passed as v2)
- missing
CIP68v1inonchain_metadata_standardenum
/mempool/addresses/{address}endpoint
/mempool/{hash}fieldinline_datumin transaction output now returns CBOR/utils/txs/evaluateexample and Ogmios API Reference URL- CIP25v2 validation (
getOnchainMetadata)
validateCIP68Metadatautil function returns the validated metadata with proper TS type
- document data source of
decimalsfield in/addresses/{address}/extended
validateCIP68Metadatautil function to validate CIP68 metadata
addressfield to/addresses/{address}/utxosand/addresses/{address}/utxos/{asset}
- table HTML tags
- missing summaries
- update deps and yarn version
- test coverage
getCIPstandard,getOnchainMetadataVersion,getOnchainMetadatafunctions
- descriptions
getSchemautil functionvalidateSchemautil functiononchain_metadata_standardto/assets/{asset_id}endpoint to reportonchain_metadatavalidity
- moved CIP-25 validation to a custom schema to avoid strict check on
onchain_metadata
/network/erasendpoint
- adjust CIP-25 and add v2 validation for onchain_metadata in
/assets/{asset_id} - refactored custom schemas
- accidental npm release
getSchemaForEndpointutil function
/pools/extendedexample
- skipped due to acciedental npm publish
⚠️ BREAKING CHANGE: NPM package - typescript types are now exported by default- add
querystringandparamsto schemas
- typescript types with export
/mempooland/mempool/{hash}endpoints
- HTTP
425-Pin Queue FulltoErrorsfor limiting queue inipfs/pin/add/{IPFS_path}endpoint - New networks preview and preprod
- Typos and examples
- Refactored
anyOftoanyVlaue
- Missing
block_timein schema for asset transactions - Missing
additionalPropertiesinjson_metadataandcost_models
- Block schema now contains extra
op_certfieldop_cert_counterfield
/txs/{hash}/utxosoutputsnow has extra booleancollateralfield which istruewhen the transaction output is a collateral output
/epochs/{number}/parametersand/epoch/latest/parametersnow hascost_modelsfield with JSON containing cost models parameters for Plutus Core scripts
/epochs/{number}/parametersand/epochs/latest/parametersextra_entropytype changed fromobjecttostring
/txs/{hash}/utxosinputsandoutputsnow contain extrainline_datumfieldreference_script_hashfield
inputsnow has a booleanreferencefield,trueif the input is a reference input
/addresses/{address}/utxosand/addresses/{address}/utxos/{asset}inline_datumfieldreference_script_hashfield
/scripts/datum/{datum-hash}/cborendpoint
/txs/{hash}/redeemers-datum_hashfield deprecated, preferredeemer_data_hash/scripts/{hash}/redeemers-datum_hashfield deprecated, preferredeemer_data_hash/epochs/{number}/parametersand/epochs/latest/parameterscoins_per_utxo_wordfield deprecated, prefercoins_per_utxo_sizecoins_per_utxo_sizeis now- Cost per UTxO word for Alonzo.
- Cost per UTxO byte for Babbage and later.
/scripts/{hash}⚠️ typefield now usesplutusV1andplutusV2instead of justplutusto be able to differentiate between twoPlutusScriptversions.
/scripts/{script-hash}/cbor-cborfield type changed tostring
typeproperty to/accounts/{stake_address}/rewardsendpoint/utils/txs/evaluateendpoint
blocks_epochproperty to/pools/{pool_id}endpoint
- mark
tx_hashin/blocks/{hash_or_number}/addressesas required field
/blocks/{hash_or_number}/addresses
/pools/extendedendpoint/utils/addresses/xpub/{xpub}/{role}/{index}endpoint
/addresses/{address}/extendedendpoint/accounts/{stake_address}/addresses/totalendpoint
- multiple descriptions
block_timeproperty to/assets/{asset}/transactions
block_timeproperty to/addresses/{address}/transactionsand/txs/{hash}
- HTTP
425-Mempool FulltoErrorsfor better handling of full mempool in/tx/submitendpoint - Alonzo support related additions
valid_contractproperty to/txs/{hash}endpoint,truewhen attached script passed validation,falseif it failed phase 2 validationdatum_hashandscript_hashproperties to/txs/{hash}/redeemersdatum_hashproperty to/scripts/{hash}/redeemers/scripts/datum/{datum-hash}endpoint/scripts/{script_hash}/jsonendpoint for dumpingtimelockscripts/scripts/{script_hash}/cborendpoint for dumpingplutusscript contents
/epochs/{number}/parameters-collateral_percenttype fromnumbertointeger
/networksupply descriptions
/addresses/{address}/utxos/{asset}endpoint
- enforce pagination limits
- description of
stake_cert_countin/txs/{hash}
output_indexto eachoutputitem for/txs/{hash}/utxosendpoint
/txs/{hash}/metadata/cborandmetadata/txs/labels/{label}/cborpropertycbor_metadatais now deprecated in favour ofmetadataproperty
/txs/{hash}/utxos-data_hashfield moved up fromamounttooutputitem/txs/{hash}/utxos-output_indexofinputitems switch fromnumbertointeger
- Alonzo support related additions
/scriptsendpoint for listing all scripts/scripts/{hash}endpoint for script details/scripts/{hash}/redeemersendpoint for listing reedemers of a script/txs/{hash}/redeemersendpoint for querying transaction redeemerslockedproperty to/networkendpoint, representing total supply locked by scriptsscriptproperty to/addresses/{hash}, which istruewhen the address is a script address.redeemer_countproperty to/txs/{hash}endpoint- Boolean
collateralproperty toinputsobject of/txs/{hash}/utxosendpoint data_hashproperty to bothinputsandoutputsobjects of/txs/{hash}/utxosendpointdata_hashproperty to/addressess/{hash}/utxosendpoint/epoch/latest/parametersand/epoch/{number}/parametersextended with cost model fields.
/ipfs/addsize response type fixed from integer to string- types of IPFS size examples
- description of
ipfs/pin/list/<object> onchain_metadatatype of/assets/{asset}endpoint
- multiple descriptions and examples, mainly related to time/date
networkendpoint
- typo in
/addresses/{address}/txsdescription - thanks @papacarp
- properties
tx_hashandoutput_indextoinputsof/txs/{hash}/utxosendpoint stake_addressproperty to/accounts/{stake_address}endpointaddressproperty to/addresses/{address}and/addresses/{address}/totalendpointsassetproperty to/assets/{asset}endpointepochproperty to/epochs/{number}/parametersand/epochs/latest/parametersendpointspool_idandhexproperties to/pools/{pool_id}and/pools/{pool_id}/metadataendpointshashproperty to/txs/{hash}and/txs/{hash}/utxosendpointsaddressproperty to/nutlink/{address}endpoint
- clarified active stake
amountin/epochs/{number}/stakesand/epochs/{number}/stakes/{pool_id} - pagination of
accounts/{stake_address}/addresses/assetsendpoint
mint_or_burn_countproperty to/assets/{asset}endpointasset_mint_or_burn_countproperty to/txs/{hash}endpointdecimalsproperty to/assets/{asset}endpoint
nutlinkendpoints
- authentication documentation
mir_cert_countproperty to/txs/{hash}- additional query parameters
fromandtointo/addresses/{address}/transactionsendpoint /txs/{hash}/mirsendpoint to display MIR details/accounts/{stake_address}/withdrawalsand/accounts/{stake_address}/mirsendpoints
txs/{hash}/stakesdefault ordering
- properties of
/addresses/{address}/transactionsand/assets/{asset}/transactionsto be required
/addresses/{address}/transactionsand/assets/{asset}/transactionsendpoints to provide more details about transactions and make the endpoint extendable (object) for future needs/blocks/slot/{slot_number}and/blocks/epoch/{epoch_number}/slot/{slot_number}endpoints to provide block details for a specific slot
/addresses/{address}/txsand/assets/{asset}/txsare deprecated (but still functional) in favour of newly added endpoints
- type of
numberparameter in/epochs/{number}/string -> integer
/accounts/{stake_address}/addresses/assetsendpoint to list all assets on addresses related to a given stake_address (account)/epochs/latest/parametersand/blocks/latest/txsendpoints to list the current information about latest epoch and block
- implementation (increase allowed burst) of rate limiting and clarified documentation
onchain_metadatain/assets/{asset}/totalendpoint that could have been missing in some special casesonchain_metadatain/assets/:assetendpoint to return null on malformed data which do not follow https://github.com/cardano-foundation/CIPs/pull/85/files
registrationandretirementarrays in/pools/{pool_id}/endpoint doesn't need to beNullable
amountin/accounts/{stake_address}/rewards,/accounts/{stake_address}/delegationsand/accounts/{stake_address}/historyendpoints doesn't need to beNullable
- inconsistency in
/txsendpoints when array was used outside of ref (moved array inside the referenced schema)
- slightly improved README
- all occurences of
epochtoactive_epochin/accounts/{stake_address}/historyendpoint - required properties of multiple endpoints and error messages
block_heightto/txs/{hash}endpoint
- alphabetical ordering in Cardano subcategory documentation
- deprecated
indexin favour ofcert_indexin/txs/{hash}/delegations
onchain_metadatato/assets/{asset}endpointslotparameter to/txs/{hash}endpointcert_indexparameter to all relevant endpoints:/txs/{hash}/stakes/txs/{hash}/pool_updates/txs/{hash}/pool_retires
/poolstrailing slash in documentation
/assets/{asset}/addresseslists of the addresses holding a specific asset/assets/policy/{policy_id}lists the assets minted under a specific policy
tx_indexin/addresses/{address}/utxos- it has been deprecated in favour ofoutput_index/endpoint propertyversiontype number -> string
/ipfs/endpoints for IPFS cluster
/assets/{asset}specification ofmetadatato adhere to upstream
/tx/submiterror handling (standardized error reply for 400)/assets/{asset}handling ofmetadata
/accounts/{account}/addresseswhich returns the list of on-chain addresses associated with a specific stake key402response to mark oversubscription (projects exceeded their daily subscription plan)
/tx/submitendpoint, which now accepts CBOR encoded serialized transaction instead of a binary blob
- functionality and description of rate limiting (429), oversubscription (402) and banning (418)
/assets/{asset}/txsendpoint to list all transactions of a given asset- Owners to
/txs/{hash}/pool_updatesendpoint
- Altered functionality and description of
active_epochin/accounts/{stake_address}to better match its changed functionality. When account is deregistered (activefield isfalse), this field contains the epoch number of deregistration reward_address->reward_accountin/pools/{pool_id}and/txs/{hash}/pool_updatesendpoints as the previous name was misleading and incorrect- Deprecated
unitfield of not yet usedmetadatain/assets/{asset}endpoint - Descriptions of few fields
- Multiple endpoints impacted by Cardano DB Sync issue. We have addressed associated issues with a temporary fix which will be in effect until the issue is addressed in the upstream. Please note that this mostly involved retired pools and their associated reward accounts. Affected endpoints and their parameters:
/pools/{pool_id}live_stakelive_sizelive_saturationlive_pledge
/pools/{pool_id}/delegatorslive_stake
/accounts/{stake_address}controlled_amountwithdrawable_amount
- Missing treasury in calculation of
live_stakein/pools/{pool_id}/delegatorsendpoint. Other endpoints were not affected - Pool hopping account issues which were causing that some pools were displaying slightly higher
live_stakevalues and thus also very slightly skewedlive_sizeandlive_saturationcalculations in/pools/{pool_id}endpoint active_epochin/accounts/{stake_address}was previously displaying epoch of delegation, not epoch of de/registration
/txs/{hash}types ofinvalid_beforeandinvalid_hereafterchanged from integer to string as the value may overflow
/pools/retiredand/pools/retiringare now sorted first byepochand thentx_idas it was causing inconsistencies when pool announced its retirement way back in the past (in this case, the retired pool could be inserted in the middle of already retired pools)/poolswas showing duplicate values in some special casesjson_metadatatype intx_metadata_label_jsonOpenAPI scheme so it would correctly accept all values - thanks @sorki
/poolsendpoint now also includes retiring (not yet retired) pools- All
/addresses/{address}endpoints now also acceptpayment_credin Bech32 format - All
/pools/{pool_id}endpoints now also acceptpool_idin Hex format
- New items to multiple
/epochsendpointsfirst_block_time- Marking first block of the epochlast_block_time- Marking last block of the epochactive_stake- Sum of all active stakes of the epoch
- Pagination for
/metadata/txs/labelsendpoint
- Rename
active_pledge→live_pledgein/pools/{pool_id} start_timeandend_timenow display correct values (previouslyfirst_block_timeandlast_block_timevalues were shown)- Specification for
tx_metadata_labels - Unify pagination documentation
- Unify item names in
/epochs/blocks_count→block_counttxs_count→tx_counttxs_sum→outputfees_sum→fees
- Rename
acronym→tickerin metadata of/assets/{asset}
- Initial release