Last updated a year ago
There are already Javascript, .Net, Go, Java and Python libraries to query data from the Koios API in the respective language. I would like to extend these libraries with a Perl module.
This is the total amount allocated to A Perl module for the Cardano Blockchain Koios API using Perl objects.
I will write a Perl module to easily retrieve data from the Koios API. In addition to the API calls, there will be helper classes that filter data, reload associated data or combine different data
No dependencies.
The entire project will be published under the MIT license:
https://opensource.org/license/mit/
I will also follow the CPAN licensing guidelines:
https://www.perlfoundation.org/cpan-licensing-guidelines.html
In advance, I spoke to various people about my project. Even though Perl is a rather unpopular language, many people use it to quickly try things out or write simple scripts. I personally like to use Perl for static tasks.
Perl is also directly available on almost every Linux / BSD system and does not need to be installed additional.
The module is hosted on both github and CPAN to make installation as easy as possible.
Definition of done <- The full functionality of the API:
Network
Query Chain Tip - tip()
Get Genesis info - genesis()
Get historical tokenomic stats - totals()
Param Update Proposals - param_updates()
Reserve Withdrawals - reserve_withdrawals()
Treasury Withdrawals - treasury_withdrawals()
Epoch
Epoch Information - epoch_info()
Epoch's Protocol Parameters - epoch_params()
Epoch's Block Protocols - epoch_block_protocols()
Block
Block List - blocks()
Block Information - block_info()
Block Transactions - block_txs()
Transactions
UTxO Info - utxo_info()
Transaction Information - tx_info()
Transaction Metadata - tx_metadata()
Transaction Metadata Labels - tx_metalabels()
Submit Transaction - submittx()
Transaction Status - tx_status()
Transaction UTxOs - tx_utxos()
Stake Account
Account List - account_list()
Account Information - account_info()
Account Information (Cached) - account_info_cached()
UTxOs for stake addresses (accounts) - account_utxos()
Account Txs - account_txs()
Account Rewards - account_rewards()
Account Updates - account_updates()
Account Addresses - account_addresses()
Account Assets - account_assets()
Account History - account_history()
Address
Address Information - address_info()
Address UTXOs - address_utxos()
UTxOs from payment credentials - credential_utxos()
Address Transactions - address_txs()
Transactions from payment credentials - credential_txs()
Address Assets - address_assets()
Asset
Asset List - asset_list()
Policy Asset List - policy_asset_list()
Asset Token Registry - asset_token_registry()
Asset Information (Bulk) - asset_info()
Asset UTXOs - asset_utxos()
Asset History - asset_history()
Asset Addresses - asset_addresses()
NFT Address - asset_nft_address()
Policy Asset Address List - policy_asset_addresses()
Policy Asset Information - policy_asset_info()
Asset Summary - asset_summary()
Asset Transactions - asset_txs()
Asset Address List - asset_address_list()
Asset Policy Information - asset_policy_info()
Pool
Pool List - pool_list()
Pool Information - pool_info()
Pool Stake Snapshot - pool_stake_snapshot()
Pool Delegators List - pool_delegators()
Pool Delegators History - pool_delegators_history()
Pool Blocks - pool_blocks()
Pool Stake, Block and Reward History - pool_history()
Pool Updates (History) - pool_updates()
Pool Registrations - pool_registrations()
Pool Retirements - pool_retirements()
Pool Relays - pool_relays()
Pool Metadata - pool_metadata()
Script
Script Information - script_info()
Native Script List - native_script_list()
Plutus Script List - plutus_script_list()
Script Redeemers - script_redeemers()
Script UTXOs - script_utxos()
Datum Information - datum_info()
Ogmios
Query Example - ogmios()
With the Perl module I would like to give Perl developers a tool, to quickly and easily access the Koios API on the Cardano blockchain. I also see great added value for the Perl community, which is very open to new use cases and it could be the start of a close collaboration between the Cardano and Perl communities.
I have been developing software, mainly in the open source environment, for many years and have also developed entire web portals in Perl.
Covering the whole Koios API in a Perl module. See list above.
I will repeat Milestone 2 and 3 iteratively until all functions are covered. My approach is to divide the whole thing into parts. This makes the work easier and clearer
Writing the documentation in perldoc format
Publish on CPAN und github to have the code tested by the community.
Perl module is publish on CPAN und github in a version that is also rated as a stable version by the testers and the community
The project is carried out by me alone, from programming to publication.
But anyone who wants to test the individual development steps can. There will be invitations on various social media channels. Everyone is welcome!
90% from the budget is used for my time, which I dedicate to the project. The rest can be seen as the cost of my development environment such as laptop, server, network costs, etc.
For developers in the community, the Perl module will be able to shorten their development time in order to be able to create statistics, status queries, etc. There will also be copy/paste examples that not so experienced developers can use one-on-one for their use case.
And of course, the Koios API is natively supported by another programming language!