We are creating

digital ID cards
Register your ID

Our goal is to create global decentralized identity

That is based on what you do in your life, not where you were born.

BENEFITS

With your digital ID card you can

Access online financial services

the fastest and more secure way

Gain trust

with potential employers

Build reputation in sharing economy

car-sharing, room-renting, etc.

Easily participate in global economy

in various currencies

FLOW

Quick verification

Our flow allows you to quickly connect your social media accounts and important documents.

FOR DEVELOPERS

Code preview

VERIFY TELEPHONE IN PYTHON

import

os

import

logging

from

binascii

import

hexlify

from

flask

import

Flask

,

render_template_string

from

flask_dance.consumer

import

OAuth2ConsumerBlueprint

logging

.

basicConfig

(

level

=

logging

.

DEBUG

)

token_url

=

"https://app.boson.me/oauth2/token"

client_id

=

os

.

getenv

(

'client-id'

)

client_secret

=

os

.

getenv

(

'client-secret'

)

boson

=

OAuth2ConsumerBlueprint

(

"boson"

,

__name__

,

client_id

=

client_id

,

client_secret

=

client_secret

,

base_url

=

"https://app.boson.me"

,

token_url

=

token_url

,

authorization_url

=

"https://app.boson.me/oauth2/authorize"

,

scope

=

[

'require:phone'

],

auto_refresh_url

=

token_url

,

auto_refresh_kwargs

=

{

'client_id'

:

client_id

,

'client_secret'

:

client_secret

,

}

)

app

=

Flask

(

__name__

)

app

.

secret_key

=

hexlify

(

os

.

urandom

(

24

))

app

.

register_blueprint

(

boson

,

url_prefix

=

"/login"

)

@app.route

(

"/"

)

def

index

():

if

not

boson

.

session

.

authorized

:

return

render_template_string

(

"""

<a href="{{url_for('boson.login')}}"> Verify! </a>

"""

)

resp

=

boson

.

session

.

post

(

"/api/v1/user/me"

)

resp_json

=

resp

.

json

()

print

(

resp_json

)

return

render_template_string

(

"""

<p>user id: {{uid}}</p> <p>phone status: {{status}}</p>

"""

,

status

=

resp_json

[

'status'

][

'phone'

],

uid

=

resp_json

[

'id'

])

if

__name__

==

"__main__"

:

app

.

run

()

LOGIN WITH EMAIL IN NODEJS

const request = require('request')
const express = require('express')
const session = require('express-session')
const randomstring = require('randomstring')
const host = 'https://app.boson.me'
const oauth2 = require('simple-oauth2').create({
client: {
id: '<YOUR APP ID>',
secret: '<YOUR SECRET ID>'
},
auth: {
tokenPath: '/oauth2/token',
authorizePath: '/oauth2/authorize',
tokenHost: host,
}
});
const authorizationUri = oauth2.authorizationCode.authorizeURL({
redirect_uri: 'https://<YOUR WEBSITE>/login',
scope: 'data:email',
state: randomstring.generate()
})
var app = express()
app.use(session({
secret: randomstring.generate(),
resave: false,
saveUninitialized: true
}))
app.get('/login', (req, res) => {
const options = { code: req.query.code }
oauth2.authorizationCode.getToken(options, (err, result) => {
if (err) {
console.log("Token access error: ", err.message)
return res.json('Authentication failed')
}
req.session.token_data = result
res.redirect('/')
res.end()
})
})
app.get('/', (req, res) => {
var token = undefined;
if (req.session.token_data) {
token = oauth2.accessToken.create(req.session.token_data)
}
if (!token || token.expired()) {
return res.send('<a href="' + authorizationUri + '">Log-in</a>')
} else {
request(
host + '/api/v1/user/me',
{ headers: {
Authorization: `Bearer ${token.token.access_token}`
}},
(err, response, body) => {
if (err) {
return res.send(err)
}
res.write('Logged in!\n')
res.write('Token: ' + JSON.stringify(token) + '\n')
res.write('/api/v1/user/me: ' + body)
res.end()
}
)
}
})
app.listen(8080, () => {
console.log("Example listening on port 8080");
});

How Boson improves Getline

Lenders can now verify their reputation and increase chance of investment

Our partners

Ready to start using BOSON?