FlowTransfer is a native well designed and fully functional mobile app which uses ultrasound waves to communicate with nearby devices. Build on top of Flow blockchain, this allows users to quickly find nearby users and transfer tokens and NFTs to nearby users. Users can set their aliases in the app for easier identification by other users. Aside from transferring tokens and NFTs, users can connect their wallet and see their balances and NFTs.
The communication tech used in FlowTransfer is based on data transfer using ultrasound waves which is inaudible to humans
Advantages for using sound based data transfer:
Highly cross-platform. Any device with speakers and a microphone can exchange data. Transactions can be made across different devices (browser/ios/android)
No pairing. Unlike Bluetooth, sound can be used instantly without the need to pair devices. This reduces the friction and improves the user experience.
Can work offline. Transactions can be triggered offline and can be broadcasted to chain through offline mediums such as SMS. Signed transfer transaction can be sent through SMS to a receiver which is online and can broadcast signed tx to chain.
Code - https://github.com/naman14/FlowTransfer
APK - https://github.com/naman14/FlowTransfer/raw/main/assets/app-debug.apk
Choosing the right frequency and frame length for ultrasound waves was the critical part. Different profiles exist to use sound based data transfer but ultimately I used Ultrasound FSK Fast which results in fast but small data chunks to be transferred in a single frame. Other challenges included doing the initial fcl-android authentication setup where WalletConnect doesn't seem to work in latest release. I opened PRs and issues to the fcm-android repo for the same.
Tracks Applied (2)
Discussion