Toshi SOFA App

by tokenbrowser


Toshi SOFA App

This repo helps you build a Toshi app in Javascript.

The sample bot can:

  • send messages
  • send and request money
  • create simple UI for buttons and menus
  • store sessions and state for each user


  • sending image messages
  • creating web view UIs

Launch your own Toshi app in 5 minutes

Read our guide to creating a Toshi app.

When ready, fork this repo and deploy it to Heroku.


Then check out src/bot.js to start changing the bot logic.

Running locally with Docker

You can run the project locally with

docker-compose up

If any new depencies are added you can rebuild the project with

docker-compose build

To reset the postgres database in your dev environment you can use

docker-compose down -v


Deploying a Toshi app requires a few processes to run:

  • toshi-headless-client
    This is a client we provide (similar to the iOS or Android client) that provides a wrapper around the Toshi backend services. It also handles end-to-end encrypting all messages using the Signal protocol. It is written in Java and runs in the background, proxying all the requests to and from your bot.
  • redis
    We use redis pub/sub to provide a connection between the toshi-headless-client and your bot.
  • bot.js
    This is where all your app logic lives.
  • postgres
    Postgres is used to store session data so you can persist state for each user who talks to your bot (similar to cookies in a web browser).


See also

Copyright © 2017-2018 Toshi Holdings Pte. Ltd. <>

"Toshi" is a registered trade mark. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor.

This software licensed under the MIT License.