funded
CShell by TxPipe: A Cardano wallet in your terminal
Current Project Status
In Progress
Amount
Received
₳0
Amount
Requested
₳197,143
Percentage
Received
0.00%
Solution

A light, self-custodial, open-source wallet that runs on the terminal, enabling new capabilities for power-users around automation and programability which can’t be find in other wallets.

Problem

Cardano has a LOT of wallets, but all of them rely on either browser or mobile interfaces. Power-users that require automation & programability are limited by the interfaces of existing wallets.

Impact Alignment
Feasibility
Value for money

txpipe

2 members

CShell by TxPipe: A Cardano wallet in your terminal

Please describe your proposed solution

End-user wallet interactions are broadly supported across the wide diversity of existing wallets in the ecosystem, but these wallets are optimized for one-off interactions using touch / click interfaces.

Power-user and developers are interested in automating processes and scripting interactions. Touch / click interfaces make automation very inefficient, insecure or even impossible to accomplish.

The best interface for automation and scripting is a CLI (command-line interface). A CLI-based wallet would allow power-users to leverage the huge ecosystem of existing tools specially designed for these particular use-cases.

This new CLI wallet will provide the following features:

  • Common wallet features: our CLI includes the basic features one would expect from any wallet, such as: creating signing keys, restoring an existing wallet, checking balances, submitting transactions, etc.
  • Intent-based commands: users can build Cardano transactions by specifying commands that describe "intents", such as transferring ADA amount, sending an NFT, publishing a certificate, etc. These commands are aware of the wallet balance and will automatically build the required transaction primitives.
  • Scriptable transaction: transaction commands can be composed into more complex interactions using common scripting languages like bash or python. These scripts can serve as "parametrized transaction templates" that can be reused multiple times.
  • Chain explorer: our tool can be used like a CLI-based explorer to query the history of the chain for data such as: specific blocks, transactions, addresses and UTxOs. Data can be provided in different formats: CBOR, Json and CSV.
  • Extremely lightweight: the CLI will have a very low resource footprint, requiring only a few mb of memory, low CPU consumption and minimum disk space; making it suitable running on laptops, servers and raspberry pis.
  • Open-source, Hackable: source-code for the wallet will be public and released under Apache 2.0 license, allowing anyone to audit and modify it to their needs. The code-base will be well documented and organized, making it friendly for developers to adapt.
  • Switchable data providers: our tool is a lightweight wallet, it requires a remote server to interact with the blockchain. To give the users options and avoid vendor lock-in, this wallet will be coded against a generic interface (utxorpc.org) supported by multiple vendors and backend tools.

Please define the positive impact your project will have on the wider Cardano community

Providing low-code tooling for power-users to automate interactions with Cardano will open up a whole new set of intermediate-complexity applications (trading bots, scripted dApps, notification bots, etc) that have the potential to drive new on-chain activity and foster adoption by technical users without extensive and deep expertise on Cardano development.

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?

TxPipe is an active member of the Cardano ecosystem

TxPipe has been developing open-source tools for the Cardano ecosystem for over 2 years and we're not going anywhere. Evidence of our commitment can be found by evaluating the continuous activity of our public code repositories.

Experience developing in the Cardano ecosystem

TxPipe has helped developed several dApps for the Cardano ecosystem. This experience allows us to evaluate the feasibility of the project and its potential benefit from a developer's perspective.

Successful Catalyst proposals

We have successfully completed several Catalyst proposals. This may serve as evidence that our team has the required capabilities to fulfill these type of projects.

Development process will be public and open-source

Both the output and the development process will be public and open-source. This approach provides an easy way for the Catalyst team and the Cardano community to evaluate the progress at each step of the process.

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

Milestone 1: Project Scaffolding

Milestone outputs:

  • Publicly available source-code containing the project scaffold
  • A stub of the CLI binary and install script
  • A stub of the CLI main command entry-points

Acceptance criteria:

  • A user is able to install the stub CLI binary
  • The source-code is suitable for further feature development

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Link to binary release and install procedures

Milestone 2: Local Data & Key Management

Milestone outputs:

  • Publicly available source-code containing the milestone features
  • New feature for creating new wallet keys
  • New feature for restoring wallet from secret phrase
  • New feature for storing local wallet data (UTxO state)

Acceptance criteria:

  • A user can create new wallet keys using the CLI
  • A user can restore a wallet from secret phrase using the CLI
  • A user can read the available local data for their wallet using the CLI

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Binary release containing the new features
  • Video showcasing the new features

Milestone 3: External Data Provider Integration

Milestone outputs:

  • Publicly available source-code containing the milestone features
  • New feature for syncing wallet state from remote provider
  • New feature for submitting transactions to remote provider
  • New feature for querying chain data from remote provider

Acceptance criteria:

  • A user can update the balance of their wallet using the CLI
  • A user can read the updated balance of their wallet using the CLI
  • A user can submit a new generic transaction using the CLI
  • A user can query chain data using the CLI

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Binary release containing the new features
  • Video showcasing the new features

Milestone 4: Transaction Building

Milestone outputs:

  • Publicly available source-code containing the milestone features
  • New feature for building transaction using low-level primitives
  • New feature for building transactions from intents
  • New feature for inspecting pending or existing transactions

Acceptance criteria:

  • A user can update the balance of their wallet using the CLI
  • A user can read the updated balance of their wallet using the CLI
  • A user can submit a new generic transaction using the CLI
  • A user can query chain data using the CLI

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Binary release containing the new features
  • Video showcasing the new features

Milestone 5: Packaging & Documentation

Milestone outputs:

  • Improved install experience for mac, windows & linux
  • Documentation website with install and usage instructions
  • Automation and scripting examples

Acceptance criteria:

  • A user can install the CLI in mac, windows and linux
  • A user can learn how to use the CLI from the available documentation
  • A user can use the provided examples to build their own automation flows

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Binary release for all supported platforms
  • Link to documentations site and examples
  • Video showcasing the install process and comprehensive usage

Final Milestone: Closeout Report

Milestone outputs:

  • Publicly available source-code with all features
  • Final binary release and install scripts
  • Final documentation site
  • a video showcasing the final output of the project
  • a final report describing the project process and outcome

Acceptance criteria:

  • the wallet CLI matches the features in the proposal
  • the final video complies with Catalyst requirements
  • the final report complies with Catalyst requirements

Evidence of milestone completion:

  • Source-code available in the Github repository
  • Link to documentation site (URL TBD)
  • Final video uploaded to Google drive
  • Final report uploaded to Google drive

Please provide a cost breakdown of the proposed work and resources

FTE = Full-time equivalent

Software development:

  • Rust developer: 1 FTE x 6 months = ₳ 154,286
  • Technical Writer: 1 FTE x 3.5 months = ₳ 30,000

Project Management:

  • Project Manager: 1/4 FTE x 6 months = ₳ 12,857

No dependencies.

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

The bulk of the budget falls under the software development category. TxPipe has extensive experience in the field, allowing it to provide good value for money. The hourly rates are defined using fair market prices. The estimation for the level of effort takes into account all of the optimizations that our team is capable of providing after years of experience developing software solutions in the Cardano ecosystem.

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