not approved
Open Source Cardano API and Webhooks
Current Project Status
Unfunded
Amount
Received
₳0
Amount
Requested
₳217,000
Percentage
Received
0.00%
Solution

Our solution includes a Cardano API and webhooks to be deployed as docker containers in a Kubernetes cluster. The solution will be fully open-source support for easy customization.

Problem

wb-750f3d.png

Current solutions lack open-source webhooks. Our solution will provide an open-source Cardano API and webhooks.

Feasibility
Value for money
Impact / Alignment

Team

2 members

Open Source Cardano API and Webhooks

Please describe your proposed solution.

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:

  1. 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.
  2. 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.
  3. 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.

How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

Our proposed solution directly addresses the challenges of tools or software that can improve the developer ecosystem or infrastructure to make it easier to build and scale on the Cardano blockchain. By fostering open-source collaboration, attracting developers and enterprises, and contributing to a more robust ecosystem, our solution brings significant value to Cardano. We anticipate increased developer and enterprise adoption, heightened transactional activity, and a more powerful and diverse application landscape, strengthening the overall position of Cardano as a leading blockchain platform.

Impact on the Cardano Ecosystem:

  1. Increased Developer Adoption: Our solution's open-source flexibility and developer-friendly approach will attract more developers to the Cardano ecosystem. This will result in increased developer engagement, a broader range of applications built on Cardano, and a stronger developer community.
  2. Enhanced Enterprise Adoption: The high-performance infrastructure provided by our solution makes it an attractive choice for enterprises and businesses seeking to implement blockchain solutions. The ability to meet the demands of production environments will drive increased adoption and utilization of Cardano within enterprise settings.
  3. Strengthened Ecosystem: By providing a comprehensive and production-ready solution, we contribute to the overall strength and maturity of the Cardano ecosystem. Our solution fills a gap in the market, addressing the specific needs of developers and businesses and expanding the use cases and applications available on Cardano.
  4. Increased Usage and Transactions: Within a reasonable timeframe after the project completes, we anticipate a significant increase in usage and transactions facilitated by applications built using our solution. While exact numbers depend on factors such as market adoption and application popularity, we aim to drive substantial growth in the Cardano ecosystem's transactional activity and user engagement.

How do you intend to measure the success of your project?

We intend to measure the success of our project through a combination of quantitative and qualitative metrics that capture the benefits and impact of our solution on the Cardano ecosystem. Here are the key areas we will focus on:

  1. Adoption and Integration: We will measure the number of developers and businesses that adopt our solution and successfully integrate it into their applications. This metric reflects the attractiveness and usability of our solution within the Cardano ecosystem.
  2. Community Feedback and Satisfaction: We will actively seek feedback from the Cardano community, including developers, users, and other stakeholders. Qualitative data on their satisfaction, opinions, and experiences with our solution will provide insights into the value it brings and the level of innovation achieved.
  3. Developer Engagement and Contributions: We will measure the level of developer engagement, including community involvement, code contributions, and the creation of additional tooling and resources around our solution. This metric demonstrates the extent to which our solution inspires collaboration and empowers developers within the Cardano ecosystem.
  4. Growth of Applications and Use Cases: We will monitor the growth in the number and diversity of applications and use cases built using our solution. This metric indicates the expansion of Cardano's productivity and the ability of developers to leverage our solution to create innovative and impactful applications.

In the short term, our solution will provide immediate benefits to developers and enterprises seeking a comprehensive and customizable toolkit for building blockchain applications. The increased adoption, transaction volume, and user engagement will contribute to Cardano's productivity and growth.

Please describe your plans to share the outputs and results of your project?

  1. Documentation and Technical Resources: Create comprehensive documentation that explains the project's purpose, functionality, and implementation details. This documentation should be publicly accessible and valuable for developers and users who want to understand and utilize the project.
  2. Open-Source Code Repository: Host the project's code on a well-known and publicly accessible version control platform like GitHub. Ensure the codebase is well-documented, organized, and easy for others to understand and contribute to.
  3. Release Announcements: Share project releases and updates on relevant platforms and forums. This includes posting release announcements on Cardano-related communities, developer forums, and social media channels to inform and engage the target audience.
  4. Developer Community Engagement: Participate in developer communities and forums related to Cardano and blockchain technology. Share insights, experiences, and lessons learned from the project. Engage with developers, answer questions, and seek feedback to foster a collaborative environment.
  5. Collaboration and Partnerships: Explore opportunities to collaborate with other projects, developers, or organizations within the Cardano ecosystem. Collaborative efforts can amplify the project's impact and reach a broader audience.

By following these strategies, you can effectively share the project's outputs and engage with the community.

What is your capability to deliver your project with high levels of trust and accountability?

We built Tangocrypto Software as a Service (https://www.tangocrypto.com) providing a Cardano API for blockchain data and NFT minting. We are the developers of cardano-wallet-js (https://github.com/tango-crypto/cardano-wallet-js) and operate the stake pool TANGO.

We have developed a Cardano API and Webhooks that seamlessly scale and accommodate a substantial influx of thousands of buyers per second. Our team possesses extensive expertise in building scalable systems that empower decentralized networks.

Initially, our platform was constructed on the reliable foundation of Amazon Web Services (AWS), harnessing the power of services like Cloudfront, Lambda, ALB/NLB, SQS, DynamoDB, ECS, and EventBridge. However, we are determined to break free from the confines of a specific cloud provider and embrace a more decentralized approach.

In our unwavering commitment to decentralization, we have embarked on a transformative journey towards open-source software. By migrating our entire infrastructure to open-source alternatives, we empower individuals to operate the minting platform on their nodes, granting them greater autonomy and control.

This shift promotes the ideals of decentralization and fosters community engagement within the Cardano ecosystem. By embracing open-source principles, we empower users to shape the future of tokenization and contribute to the growth and success of Cardano, ensuring that the power remains in the hands of the community.

What are the main goals for the project and how will you validate if your approach is feasible?

The project's goals include:

  1. Developing an open-source Cardano API.
  2. Implementing real-time webhooks.
  3. Ensuring high performance and scalability.
  4. Fostering community collaboration and adoption.
  5. Streamlining the development process by deploying the solution on Kubernetes.

The achievement of these goals can be validated through milestones such as successful deployment, comprehensive testing, community engagement, performance benchmarks, and adoption rates of the project's resources.

1 - Develop an Open-Source Cardano API: The project's primary goal is to create an open-source Cardano API that provides developers with comprehensive access to on-chain data and functionalities. This API should be well-documented, easy to use, and support high-performance requirements.

Validation: The achievement of this goal can be measured by the successful development and deployment of the Cardano API. It should include all the necessary endpoints mentioned earlier and be capable of handling real-world production workloads. Regular updates to the API documentation and addressing community feedback will also indicate progress towards this goal.

2 - Implement Real-Time Webhooks: Integrating real-time webhooks into the Cardano ecosystem is another key objective. These webhooks should provide developers with instant notifications for on-chain events related to payments, blocks, transactions, epochs, delegation, and asset activity.

Validation: The successful implementation of webhooks and their ability to deliver real-time notifications accurately and reliably will validate the achievement of this goal. Conducting thorough testing and ensuring the webhooks work seamlessly with the Cardano blockchain will be essential.

3 - Ensure High Performance and Scalability: A crucial goal is to design the solution to be highly performant and scalable, capable of meeting the demands of high-scale, high-performance applications in production environments. This includes optimizing the API endpoints, streamlining data retrieval processes, and leveraging efficient infrastructure.

Validation: Performance and scalability can be measured through load testing and benchmarking. Simulating heavy workloads and monitoring the system's response times, resource utilization, and throughput will help determine if the solution meets the performance and scalability objectives.

4 - Foster Community Collaboration and Adoption: An important aspect of the project is actively engaging with the Cardano community and fostering collaboration. The project aims to become a key piece of open-source infrastructure in the Cardano ecosystem by open-sourcing the solution, encouraging community feedback, and addressing community needs.

Validation: Community engagement can be measured by the number of contributions, feedback, and active involvement from developers and stakeholders in the Cardano community. Regular updates to the project repository, community discussions, and successful integration of community-driven improvements will indicate progress towards this goal.

5 - Streamline Development Process: The project should focus on providing developers with a comprehensive toolkit and resources that streamline the development process for Cardano blockchain applications. This includes well-documented APIs, modular components, and clear examples and tutorials to assist developers in building robust and scalable dApps.

Validation: The effectiveness of the provided resources can be measured through developer feedback, adoption rates of the project's tools and libraries, and the successful development and deployment of applications built using the project's resources.

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

Milestone 1 (Development environment and API Gateway layer)

Expected duration: 1 Month

Expected cost: 20k USD

Key activities:

  • Infrastructure setup for development: Set up the necessary infrastructure to host the minting platform. This may involve deploying servers, configuring networking.
  • API Gateway Layer: Develop an API gateway layer that acts as an interface for interacting with the minting platform. This layer handles incoming requests, performs rate limiting, authentication and authorization, and forwards requests to the appropriate services.
  • REST API endpoints:

Addresses

  • Retrieve address summary
  • Retrieve address summary
  • List address coin selection
  • List address assets
  • List address asset UTXOs
  • List address transactions

Acceptance criteria: Development environment ready for developers and API layer deployed in the development environment. API queries working and published on Github.

Milestone 2 (API Endpoints)

Expected duration: 1 Month

Expected cost: 20k USD

Key activities:

  • REST API endpoints:

Transactions

  • Retrieve Transaction
  • List transaction UTXOs
  • List transaction scripts
  • List transaction collaterals
  • List transaction assets mints
  • Retrieve transaction metadata
  • Submit a transaction:
  • Evaluate a transaction
  • Build a transaction

Scripts

  • Retrieve a script
  • List script redeemers
  • Retrieve datum

Wallet

  • Retrieve wallet summary
  • List wallet addresses:
  • List stake addresses coin selection

Blocks

  • Retrieve latest block
  • Retrieve block
  • List block transactions

Assets

  • Retrieve asset
  • List asset addresses

Policy

  • List assets by policy

Epochs

  • Retrieve protocol parameters
  • Retrieve current epoch information

Pools

  • Retrieve stake pool metadata
  • List stake pool delegations

Milestone 3 (Webhooks)

Expected duration: 1 Month

Expected cost: 20k USD

Key activities:

webhooks

  • Payments
  • Block
  • Transaction
  • Epoch
  • Delegation
  • Asset Activity

Please describe the deliverables, outputs and intended outcomes of each milestone.

Milestone 1 (Development environment and API Gateway layer)

Outputs: API layer source code on Github, API tests, and documentation.

Deliverables: Development environment API layer deployed in the development environment. The API Gateway layer consists of a cluster of Tyk-gateways, Tyk-servers and a Redis cluster. Github repository with DbSync queries for addresses.

Milestone 2 (API Endpoints)

Outputs: Data layer source code on Github, API tests, and documentation.

Deliverables: Queries on Github for transactions, scripts, wallets, blocks, assets, policies, epochs, and pools.

Milestone 3 (Webhooks)

Outputs: source code on Github, API tests, and documentation.

Deliverables:

  • Webhooks for Payments, Blocks, Transactions, Epoch, Delegation, Asset Activity
  • Docker images to be deployed on Kubernetes.
  • Documentation with instructions for deployment and usage.

Please provide a detailed budget breakdown of the proposed work and resources.

Milestone 1 (Development environment and API layer)

Senior Software Engineer: 20 days * 8h * $50 = $8000

Senior Product Manager and solutions architect: 20 days * 8h * $45 = $7200

Senior DevOps: 20 days * 8h * $31.25 = $5000

Infrastructure for development: 1000

Total: $25,000

Milestone 2 (Data layer and entities definition)

Senior Software Engineer: 20 days * 8h * $50 = $8000

Senior Product Manager and solutions architect: 20 days 8h $45 = $7200

Senior DevOps: 20 days * 8h * $31.25 = $5000

Infrastructure for development: 1000

Total: $25,000

Milestone 3 (Webhooks)

Senior Software Engineer: 20 days * 8h * $50 = $8000

Senior Product Manager and solutions architect: 20 days * 8h * $45 = $7200

Senior DevOps: 20 days * 8h * $31.25 = $5000

Infrastructure for development: 1000

Total: $25,000

Development Budget: $60,600$

Infrastructure Budget: $3,000

Total Budget in USD: $63,600

Total Budget in ADA: 217000 $ADA

Who is in the project team and what are their roles?

Product Manager & Solutions architect: Javier Toledo Cordova

Professional solutions architect with over 12 years of experience in technology, specialising in software architecture and cloud computing. Started his career as a network architect designing data center networks and now focuses on cloud architecture and product design.

Linkedin: https://www.linkedin.com/in/javiertc

Email: [email protected]

Twitter: https://twitter.com/javiertc86

Sr Full Stack Developer: Leobel Izquierdo

Software Engineer with a Bachelor's Degree in Computer Science and over 10 years of experience in the Software Industry. Working for the past 2 years with blockchain technologies like Ripple, Ethereum and Cardano.

Linkedin: https://www.linkedin.com/in/leobelizquierdo

Email: [email protected]

Twitter: https://twitter.com/leobelizquierdo

DevOps: Manuel Morejon Espinosa

Cloud Engineer and Docker Captain, passionate about Cloud Native Architectures topics and over 10 years of experience. Has technical and communication skills to help teams to improve their workflow and to reduce deployment times. The goal is always to maximize productivity by minimizing errors. Enthusiastic about teaching and sharing knowledge with the Community.

Linkedin: https://www.linkedin.com/in/manuelmorejon/

Email: [email protected]

Website: https://mmorejon.io

Twitter: https://twitter.com/morejon85

System Engineer: Eddy Garcia

DevOps engineer with experience in architecting and automating deployments over on-premise and cloud infrastructure. Proficient in Linux, Python, Docker, Ansible, Github Actions, GCP, AWS and in developing CI/CD pipelines.

Linkedin: https://www.linkedin.com/in/eddy-garcia-system-engineer/

How does the cost of the project represent value for money for the Cardano ecosystem?

The cost of the project represents excellent value for money in the Cardano ecosystem because it is a proven solution already utilized by several projects. By making it open source, the project can provide numerous benefits, including increased adoption, collaboration, and knowledge sharing within the ecosystem. This open-source approach fosters innovation, allows developers to build upon existing work, and ultimately contributes to the growth and success of the Cardano community.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00