Token based authentication for Steem made easy
Clone or download
bonustrack Fix account creation (#348)
* Fix account creation

* Set default accountCreationFee to null
Latest commit 0a1468f Oct 12, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Add the same logger than Faucet (#183) Jan 30, 2018
db Add ip filtering for apps. By default it's permissive and allow all I… May 8, 2018
helpers Add claim account sign ops (#347) Oct 7, 2018
public Fix: add default avatar when the image fails (#159) Dec 1, 2017
routes Add multiple codes for challenge (#313) Aug 2, 2018
src Fix account creation (#348) Oct 11, 2018
views Add Google Material Icons files inside project bundle Sep 28, 2017
webpack Handle escrow related operations (#252) Apr 27, 2018
.babelrc Update packages Sep 29, 2017
.dockerignore Add dockerignore Jul 28, 2017
.editorconfig migrating to sequelize May 5, 2017
.env.example Remove an unused environment variable for the example file (#261) May 3, 2018
.eslintrc.js Add language detection Sep 1, 2017
.gitignore Add antd May 6, 2017
.nsprc Adding exceptions as no patched are released yet (#285) May 17, 2018
.sequelizerc Add .sequelizerc file for sequelize cli May 16, 2017
Dockerfile Test on docker file Jul 28, 2017
LICENSE Add MIT License Aug 6, 2017 Update Discord invite link (#302) Jul 12, 2018
app.js Separate steemd url client from server (#254) Apr 27, 2018
app.json Remove an unused environment variable for the example file (#261) May 3, 2018
circle.yml Delete unused command Sep 29, 2017
config.json Fix scope name (#226) Apr 9, 2018
crowdin.yaml Add crowdin file (#262) May 2, 2018
package.json Fix create app account (#337) Sep 28, 2018
yarn.lock Fix create app account (#337) Sep 28, 2018

CircleCI Build Status Crowdin GitHub license SteemConnect channel on Discord

SteemConnect v2


Download and install Node.js >= 7.7.1 then run

npm install

Add config vars

BROADCASTER_USERNAME = Main Steem account holding posting permissions e.g 'steemconnect'
BROADCASTER_POSTING_WIF = Posting wif of the main account
JWT_SECRET = Random string
DATABASE_URL = PostgreSQL database URL
DEBUG = sc2:*


npm start


Test demo app here:



/api/me - Get user profile (require user or app token)

/api/broadcast - Broadcast posting operation for user (require app token)


/api/oauth2/authorize - Issue new app token (require user token)


Tokens are created with JWT, the payload is public. Here is how it look:

Token for user

  role: 'user',
  user: 'guest'

The token hash is saved on user localStorage once he login.

Token for application

  role: 'app',
  proxy: 'example',
  user: 'guest',
  scope: ['vote', 'comment']

The token hash is sent to the application once user authorize the application.