TangoCrypto: Open Source Cardano API and Webhooks
current project status
Current Project Status
in_progress
Total
amount
Received
₳40000
Total
amount
Requested
₳175000
Total
Percentage
Received
23%
₳40000 Received out of ₳175000
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-95a370.png](https://cardano.ideascale.com/a/attachments/embedded-files/wb-750f3d-95a370/png) Current solutions lack open-source Webhooks. Our solution will provide an open-source Cardano API and Webhooks.
Impact alignment
Feasibility
Value for money

This proposal was approved and funded by the Cardano Community via Project F11: Cardano Open: Developers - technical Catalyst funding round.

[SOLUTION] 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:

  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.

[IMPACT] Please define the positive impact your project will have on the wider Cardano community.

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.

[CAPABILITY & FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

We built Tangocrypto Software as a Service (https://www.tangocrypto.com) providing a Cardano API for blockchain data and NFT minting (which was the result of catalyst funds received during iteration 6 and 8). We are the developers of cardano-wallet-js (https://github.com/tango-crypto/cardano-wallet-js) and operate the stake pool TANGO. We have also support with our technology some of the most important projects on Cardano right now like GGMC main NFTs collection and their B2B Kingdom Trust initiative.

We have developed a minting service designed to 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 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.

[Project Milestones] What are the key milestones you need to achieve in order to complete your project successfully?

Development environment and API Gateway layer

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.

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.

>API Endpoints

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

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.

>Webhooks

Key activities:

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

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.

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

Co-Founder TangoCrypto & Sr Software Engineer: 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 3 years with blockchain technologies like Ripple, Ethereum and Cardano.

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

Email: [email protected]

Github: https://github.com/leobel

Twitter: https://twitter.com/leobelizquierdo

Co-Founder TangoCrypto & 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

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/

[BUDGET & COSTS] Please provide a cost 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: $21,200

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: $21,200

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: $21,200

Development Budget: $60,600$

Infrastructure Budget: $3,000

Total Budget in USD: $63,600

Total Budget in ADA: 175000 $ADA

[VALUE FOR MONEY] 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.

Community Reviews (1)

Comments

Monthly Reports

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