Please describe your proposed solution.
Throughout the past year, we've invested our collective efforts, dedicating time, enthusiasm, and creativity to a project that not only thrived but also stands as a testament to the resilience of our community. Our user base has grown significantly, surpassing a thousand individuals, notable entities include Book.io, GGMC and Flipr etc. The bonds forged within this dynamic community are a testament to the vibrancy that defines us.
Regrettably, market shifts have introduced challenges that have made sustaining our product an arduous task. In response to these hurdles, we embrace the ethos of open collaboration and community-driven innovation. Hence, we propose a significant shift—a commitment to making our extensive work open source. This decision is not just a preservation effort but a vision for transformation. By choosing this path, our intention is to ensure that the product we've nurtured doesn't fade away but, instead, evolves into something even more impactful.
The Cardano ecosystem offers tremendous potential for developers to build innovative blockchain applications. However, existing solutions often lack the performance, scalability, and open-source support required to meet the demands of production environments. Furthermore, many solutions primarily focus on development aspects rather than catering to the specific needs of high-scale, high-performance applications in production. Also, some current open-source solutions provide the API but not webhooks and we aim to provide both in the same project.
Cardano API endpoints to be delivered:
Addresses
- Retrieve address summary: Retrieves summarized information of an address.
- Retrieve address summary: Returns a list of UTXOs for a given address. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of UTXOs.
- List address coin selection: Returns a list of address UTXOs to pay for a given Value. The response may contain a change.
- List address assets: Returns a list of assets for a given address. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of assets.
- List address asset UTXOs: Returns a list of UTXOs for a given asset inside an address. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of UTXOs.
- List address transactions: Returns a list of transactions for a given address. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of transactions.
Transactions
- Retrieve Transaction: Retrieves the information about a transaction requested specified by a transaction hash.
- List transaction UTXOs: List the UTXOs from a transaction specified by a transaction hash.
- List transaction scripts: List the Scripts from a transaction specified by a transaction hash.
- List transaction collaterals: List the Collaterals from a transaction specified by a transaction hash.
- List transaction assets mints: List the assets mints from a transaction specified by a transaction hash.
- Retrieve transaction metadata: Retrieve the transaction metadata specified by a transaction hash. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of metadata values.
- Submit a transaction: Submit an already serialized transaction to the network.
- Evaluate a transaction: Evaluate an already serialized transaction to the network.
- Build a transaction: Build and serialize transactions with custom logic like swap, send, mint, burn etc.
Scripts
- Retrieve a script: Returns a script by its hash
- List script redeemers: Returns a script redeemer
- Retrieve datum: Retrieve datum
Wallet
- Retrieve wallet summary: Retrieve wallet summary specified by stake_address.
- List wallet addresses Returns a list of addresses for a given wallet stake_address. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of addresses.
- List stake addresses coin selection: Returns a list of address UTXOs to pay for a given Value. The response may contain a change.
Blocks
- Retrieve latest block: Retrieves the latest block available. This is known as the tip of the blockchain.
- Retrieve block: Retrieves information about a block specified by hash or block_no.
- List block transactions: Returns a list of transactions for a given block. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of transactions.
Assets
- Retrieve asset: Retrieves information about an asset
- List asset addresses: Returns a list of addresses and quantities for a given asset. The response is paginated to make the result set easier to handle. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next batch of addresses.
Policy
- List assets by policy: Returns a list of assets with the given Policy ID. The response is paginated to make the result set easier to handle. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next batch of owners.
Epochs
- Retrieve protocol parameters: Retrieves the protocol parameters for a given epoch.
- Retrieve current epoch information: Retrieves the current epoch information
Pools
- Retrieve stake pool metadata: Retrieve stake pool registration metadata specified by a pool_id.
- List stake pool delegations: Returns a list of delegations for a given stake pool. The response is paginated. If truncated, the response includes a cursor that you use in a subsequent request to retrieve the next set of delegations.
Using webhooks or SDKs to integrate real-time notifications into your app can help you quickly ship production-ready features for your users. We have webhooks to track on-chain events in real-time for:
- Payments: Real-time state changes when an address sends or receives tokens.
- Block: Get multiple data about blocks created on the blockchain.
- Transaction: Get data in real-time every time a new transaction is created.
- Epoch: Cardano SPOs can get notified when an epoch ends/starts.
- Delegation: Track delegations in the specified pool by its ticker or pool ID.
- Asset Activity: Get to know when assets (NFTs or FTs) are minted or transferred.
We propose a comprehensive Cardano solution that addresses these challenges by providing a unique combination of open-source flexibility and high-performance capabilities. Our solution encompasses an open-source Cardano API and webhooks that can be deployed anywhere, from a cloud provider to a server at home.
Our project engages multiple stakeholders within the Cardano ecosystem:
- Developers: Our solution caters to developers seeking a comprehensive toolkit for building blockchain applications on Cardano. By providing open-source resources, modular components, and high-performance infrastructure, we empower developers to unleash their creativity and build robust, scalable applications tailored to their unique requirements.
- Enterprises and Businesses: Enterprises and businesses that aim to leverage the potential of blockchain technology. Our solution's high-performance capabilities, scalability, and reliability make it an ideal choice for businesses seeking to implement scalable and secure blockchain solutions.
- Cardano Community: By open-sourcing our solution and actively engaging with the Cardano community, we foster collaboration, innovation, and collective ownership. The community's involvement in the development and enhancement of our solution ensures that it aligns with the broader Cardano ecosystem and benefits from diverse perspectives and expertise.
Our proposed comprehensive Cardano solution provides an open-source Cardano API and Webhooks designed for high performance and a focus on production environments.