This bounty is no longer available
Web3 DAO | DFINITY Logo

BNT-3: Sample App - ICRC-1 Compliant Payment Flow

Organization

DFINITY

Deadline

in over 262 years

Status

ENDED

1001 USD

INSTRUCTIONS

Sample App: ICRC-1 Compliant Payment Flow

Overview

  • Status: Open
  • Project Type: Multiple - Multiple applicants can get selected to work on the tasks and get paid.
  • Time Commitment: Weeks
  • Experience Level: Intermediate
  • Size: USD 1'000 in ICP (at time of distribution)

Description

One of the advantages to deploy a service on a blockchain platform is to be able to receive payments without the usage of a 3rd party service provider which can be a huge cost factor. In this bounty, you'll implement a sample application that showcases the implementation of the ICRC-1 payment flow to buy some digital good.

The base ICRC-1 standard supports the client-orchestrated transfer/notify flow, i.e. the client (payer) transfers the token to the service-designated subaccount and notifies the service (payee) about the transfer.

High-level flow diagram

Payment flow diagram

Notes

  • The client would utilize agent-js to perform (transfer and notify) calls.
  • The invoice and its relation to a subaccount will probably need to be standardized at some point, allowing for different compatible payer and payee implementations. We hope that this implementation will inform a potential standardization.

Acceptance Criteria

  • Interesting and sensible use case
  • Clean and well-structured code
  • Unit and E2E tests
  • Documentation
  • MIT or Apache-2.0 License
  • PR to samples at https://github.com/dfinity/portal

Further Information

The eventual goal is to make it as easy as possible for developers to integrate a payment flow into their applications. Hence, we see the development of sample applications as a first step to implementing ready-to-use client and canister libraries which could be funded by a follow-up bounty or grant.

The ICRC-1 token standard is in its early days and many details and extensions have not been fully fleshed out. It would be great if you'd provide your implementer's feedback to the Ledger & Tokenization Working Group.

How to apply?

Add a comment to this issue or respond to the forum thread. Please provide some background on your experience and give an outline of your project plan.

References