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

  • 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

  • FIO Crypto 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

  • FIO Crypto 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

  • FIO Crypto Handle: alice@purse

  • Max fee: 1.000000000

  • Sign with: FIO…

newfundsreq

New funds request

  • Chain: Testnet or Mainnet

  • Action: Request funds

  • Payer FIO Crypto Handle: alice@purse

  • Payee FIO Crypto Handle: bob@purse

  • Max fee: 1.000000000

  • Sign with: FIO…

cancelfndreq

Cancel funds request

  • Chain: Testnet or Mainnet

  • Action: Cancel funds request

  • Request ID: 123

  • Max fee: 1.000000000

  • Sign with: FIO…

rejectfndreq

Reject funds request

  • Chain: Testnet or Mainnet

  • Action: Reject funds request

  • Request ID: 123

  • Max fee: 1.000000000

  • Sign with: FIO…

recordobt

Record metadata

  • Chain: Testnet or Mainnet

  • Action: Record metadata

  • Payer FIO Crypto Handle: alice@purse

  • Payee FIO Crypto 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

  • FIO Crypto 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

  • FIO Crypto 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

  • FIO Crypto 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

  • 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

  • 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

  • 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

  • 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

  • FIO Crypto 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

  • FIO Crypto 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

  • FIO Crypto Handle: alice@purse

  • Max fee: 1.000000000

  • Sign with: FIO…

stakefio

Stake FIO Tokens

  • Chain: Testnet or Mainnet

  • Action: Stake FIO Tokens

  • Amount: 100.000000000 FIO

  • FIO Crypto Handle: alice@purse

  • Max fee: 0.908100000

  • Sign with: FIO…

unstakefio

Un-stake FIO Tokens

  • Chain: Testnet or Mainnet

  • Action: Unstake FIO Tokens

  • Amount: 100.000000000 FIO

  • FIO Crypto 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

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

  • FIO Crypto Handle: alice@purse

  • Max fee: 0.908100000

  • Sign with: FIO…

voteproxy

Proxy votes

  • Chain: Testnet or Mainnet

  • Action: Proxy votes

  • Proxy: bp@eosphere

  • FIO Crypto 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…

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