Enhancing Ledger App

Overview

The Ledger App is currently in review by Ledger and it’s been designed to only support Token Transfer action

Action

Description

Parameters displayed in Ledger App

Action

Description

Parameters displayed in Ledger App

trnsfiopubky

Allows public addresses to be mapped to FIO Address

  • Chain: Testnet or Mainnet

  • Action: Transfer FIO Tokens

  • Relevant Fields

    • Payee Pubkey: FIO…

    • Amount: 100.000000000 FIO

    • Max fee: 0.908100000

  • Sign with: FIO…

This project will add support inside the FIO Ledger app for the following additional actions.

Additional actions

Action

Description

Parameters displayed in Ledger App

Action

Description

Parameters displayed in Ledger App

addaddress

Maps public addresses to FIO Address

  • Chain: Testnet or Mainnet

  • Action: Map public address

  • Relevant Fields

    • FIO Handle: alice@purse

    • Mappings: BTC:BTC:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, ETH:ETH:0xab5801a7d398351b8be11c439e05c5b3259aec9b

    • Max fee: 1.000000000

  • Sign with: FIO…

remaddress

Removes public addresses to FIO Address mappings

  • Chain: Testnet or Mainnet

  • Action: Remove public address mappings

  • Relevant Fields

    • FIO Handle: alice@purse

    • Mappings: BTC:BTC:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, ETH:ETH:0xab5801a7d398351b8be11c439e05c5b3259aec9b

    • Max fee: 1.000000000

  • Sign with: FIO…

remalladdr

Removes all public addresses to FIO Address mappings

  • Chain: Testnet or Mainnet

  • Action: Remove all public address mappings

  • Relevant Fields

    • FIO Handle: alice@purse

    • Max fee: 1.000000000

  • Sign with: FIO…

newfundsreq

New funds request

  • Chain: Testnet or Mainnet

  • Action: Request funds

  • Relevant Fields

    • Payer FIO Handle: alice@purse

    • Payee FIO Handle: bob@purse

    • Max fee: 1.000000000

  • Sign with: FIO…

cancelfndreq

Cancel funds request

  • Chain: Testnet or Mainnet

  • Action: Cancel funds request

  • Relevant Fields

    • Request ID: 123

    • Max fee: 1.000000000

  • Sign with: FIO…

rejectfndreq

Reject funds request

  • Chain: Testnet or Mainnet

  • Action: Reject funds request

  • Relevant Fields

    • Request ID: 123

    • Max fee: 1.000000000

  • Sign with: FIO…

recordobt

Record metadata

  • Chain: Testnet or Mainnet

  • Action: Record metadata

  • Relevant Fields

    • Payer FIO Handle: alice@purse

    • Payee FIO Handle: bob@purse

    • Request ID: 123

    • Max fee: 1.000000000

  • Sign with: FIO…

regaddress

Register FIO Address

  • Chain: Testnet or Mainnet

  • Action: Register FIO Crypto Handle

  • Relevant Fields

    • FIO Handle: alice@purse

    • Owner Pubkey: FIO…

    • Max fee: 1.000000000

  • Sign with: FIO…

addbundles

Add bundles to FIO Address

  • Chain: Testnet or Mainnet

  • Action: Add bundles

  • Relevant Fields

    • FIO Handle: alice@purse

    • Bundle sets: 1

    • Max fee: 1.000000000

  • Sign with: FIO…

xferaddress

Transfer FIO Address

  • Chain: Testnet or Mainnet

  • Action: Transfer FIO Crypto Handle

  • Relevant Fields

    • FIO Handle: alice@purse

    • New owner Pubkey: FIO…

    • Max fee: 1.000000000

  • Sign with: FIO…

regdomain

Register FIO Domain

  • Chain: Testnet or Mainnet

  • Action: Register FIO Domain

  • Relevant Fields

    • FIO Domain: purse

    • Owner Pubkey: FIO…

    • Max fee: 1.000000000

  • Sign with: FIO…

renewdomain

Renew FIO Domain

  • Chain: Testnet or Mainnet

  • Action: Renew FIO Domain

  • Relevant Fields

    • FIO Domain: purse

    • Max fee: 1.000000000

  • Sign with: FIO…

setdomainpub

Set FIO Domain registration permission

  • Chain: Testnet or Mainnet

  • Action: Set FIO Domain registration permission

  • Relevant Fields

    • FIO Domain: purse

    • Make: Private or Public

    • Max fee: 1.000000000

  • Sign with: FIO…

xferdomain

Transfer FIO Domain

  • Chain: Testnet or Mainnet

  • Action: Transfer FIO Domain

  • Relevant Fields

    • FIO Domain: purse

    • New owner Pubkey: FIO…

    • Max fee: 1.000000000

  • Sign with: FIO…

addnft

Maps nft to FIO Address

  • Chain: Testnet or Mainnet

  • Action: Map nfts

  • Relevant Fields

    • FIO Handle: alice@purse

    • Mappings: ETH:ETH:0x63c0691d05f441f42915ca6ca0a6f60d8ce148cd:100010001,EOS:EOS:atomicassets:2199023271139,

    • Max fee: 1.000000000

  • Sign with: FIO…

remnft

Removes nft to FIO Address mappings

  • Chain: Testnet or Mainnet

  • Action: Remove nft mappings

  • Relevant Fields

    • FIO Handle: alice@purse

    • Mappings: ETH:ETH:0x63c0691d05f441f42915ca6ca0a6f60d8ce148cd:100010001,EOS:EOS:atomicassets:2199023271139,

    • Max fee: 1.000000000

  • Sign with: FIO…

remallnfts

Removes all nfts to FIO Address mappings

  • Chain: Testnet or Mainnet

  • Action: Remove all nft mappings

  • Relevant Fields

    • FIO Handle: alice@purse

    • Max fee: 1.000000000

  • Sign with: FIO…

stakefio

Stake FIO Tokens

  • Chain: Testnet or Mainnet

  • Action: Stake FIO Tokens

  • Relevant Fields

    • Amount: 100.000000000 FIO

    • FIO Handle: alice@purse

    • Max fee: 0.908100000

  • Sign with: FIO…

unstakefio

Un-stake FIO Tokens

  • Chain: Testnet or Mainnet

  • Action: Unstake FIO Tokens

  • Relevant Fields

    • Amount: 100.000000000 FIO

    • FIO Handle: alice@purse

    • Max fee: 0.908100000

  • Sign with: FIO…

voteproducer

Vote for FIO Block producers

  • Chain: Testnet or Mainnet

  • Action: Vote for FIO Block producers

  • Relevant Fields

    • Block producers: bp@eosphere, bp@blockpane, bp@fiotribe, bp@genereos

    • FIO Handle: alice@purse

    • Max fee: 0.908100000

  • Sign with: FIO…

voteproxy

Proxy votes

  • Chain: Testnet or Mainnet

  • Action: Proxy votes

  • Relevant Fields

    • Proxy: bp@eosphere

    • FIO Handle: alice@purse

    • Max fee: 0.908100000

  • Sign with: FIO…

Decrypting content

Decrypting newfundsreq and recordobt

  • Chain: Testnet or Mainnet

  • Action: Decrypting content

  • Decrypt using: FIO…

wrapdomain

Wrap FIO Domain

  • Chain: Testnet or Mainnet

  • Action: Wrap FIO Domain

  • Relevant Fields

    • FIO Domain: purse

    • Chain: MATIC

    • Public Address: 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B

    • Max oracle fee: 10.000000000

    • Max fee: 0.908100000

  • Sign with: FIO…

wraptokens

Wrap FIO Tokens

  • Chain: Testnet or Mainnet

  • Action: Wrap FIO Tokens

  • Relevant Fields

    • Amount: 100.000000000 FIO

    • Chain: ETH

    • Public Address: 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B

    • Max oracle fee: 10.000000000

    • Max fee: 0.908100000

  • Sign with: FIO…

Encryption

newfundsreq and recordobt actions require that the content parameter be encrypted using Diffie-Hellman encryption, see: https://developers.fioprotocol.io/docs/how-to/encryption This encryption requires access to the private key which is stored in the Ledger device. As part of this enhancement support for this encryption will be added to the Ledger FIO app. If at all possible, the app will only require a single action to be approved by the device and will handle both encryption and signing of newfundsreq and recordobt.

Example interactions: Approving FIO Request for BTC send

  • User is receives a FIO Request

  • CLIENT: User opens FIO Request

    • Prompt to Open FIO App on Ledger to decrypt request

  • DEVICE: User approves decryption of FIO Request

  • CLIENT: User sees FIO Request details (payment requires sending of BTC)

  • CLIENT: User approves the FIO Request and sends 1 BTC

    • Prompt to Open BTC App on Ledger to send BTC

  • DEVICE (BTC App): User approves sending of 1 BTC

  • CLIENT: Prompt to Open FIO App on Ledger approve FIO Request

  • DEVICE: User approves FIO Request in FIO App

    • Content is encrypted

    • Record OBT is signed