Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHIP-0031: Wallet signer QR transportation #106

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions CHIPs/chip-0031.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
CHIP Number | 0031
:-------------|:----
Title | Wallet signer QR transportation
Description | A technique for transporting a QR code between a wallet and a signer
Author | [Matt Hauff](https://github.com/Quexington)
Editor | [Dan Perry](https://github.com/danieljperry)
Comments-URI | [CHIPs repo, PR #106](https://github.com/Chia-Network/chips/pull/106)
Status | Review
Category | Process
Sub-Category | Tooling
Created | 2024-03-14
Requires | [0027](https://github.com/Chia-Network/chips/pull/102)
Replaces | None
Superseded-By | None

## Abstract

After a wallet has serialized and subdivided a message using the wallet signer protocol, the wallet could transport the resulting BLOB using a communication method that it has pre-established with the signer. However, the wallet signer protocol also allows wallets and signers to use additional standardized transportation methods. This CHIP provides such a method specifically for transporting QR codes.

## Motivation

This CHIP is narrowly focused on QR code transportation. However, more CHIPs could be added as additional needs arise, such as transportation using a third-party service or a push notification.

## Backwards Compatibility

This CHIP does not introduce any backwards incompatibilities.

## Specification

This CHIP uses the python [segno](https://pypi.org/project/segno/) library to make QR codes and rotate them in place every 2 seconds or so. The frequency of rotation is configurable upon running the `segno` command.

## Reference Implementation

This CHIP is implemented in [signer.py](https://github.com/Chia-Network/chia-blockchain/blob/6560be415cddbc86c7932ea37b73d6d7e1176019/chia/cmds/signer.py#L40-L41).

## Security

CNI has conducted an internal security audit of the code from this CHIP's reference implementation.

## Additional Assets

None

## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).