NOTE: the project is still in its early-stages, so the API may change significantly in the future
The BAF Wallet exposes the following HTTP Endpoints, each expecting arguments in the form of JSON
/signup
:- description: create a "web2" account in the BAF wallet
- expected request body:
{ "email": "some_email@some_domain.com", "password": "initial_password" }
- responses:
200
: succeeded in creating new BAF account, empty body422
: invalid email or password is too short. body:
{ "error": "'invalid email' or 'password too short'" }
409
: account already exists. body:
{ "error": "accound already exists" }
500
: internal server error
/login
:- description: login to an existing "web2" account
- expected request body:
{ "email": "some_email@some_domain.com", "password": "password" }
- responses:
200
: login successful, body should look like:
{ "token": "authentication_token" }
401
: login failed404
: any other error
/adminRpc
: protected JSON-RPC 2.0 interface for admin-level actions/rpc
: JSON-RPC 2.0 interface for wallet actions, requires a user to be signed in to their "web2" account to use
/adminRpc
methods:
verify
: marks a user's identity as "verified", allowing them to create exclusively or link a NEAR account, and initialize it with 1.1 + gas allowance NEAR from the wallet's balance- expected reuest body (will probably require other information eventually):
{ "email": "some_email@some_domain.com" }
- result: empty if successful
- error:
{ "error": "some_helpful_error_description" }
/rpc
methods
createNearAccount
: create a new NEAR account and initialize it with the wallet's funds- params: none, as we already have the user's ID from JWT
- result: empty if successful
- error:
{ "error": "some_user_facing_error_description" }
linkNearAccount
: link an existing NEAR account to the BAF wallet. The BAF wallet will not store the private keys or provide authentication, it will just send 1.1 + gas allowance NEAR to it.- params:
{ "accountId": "linked_account_id" }
- result: empty if successful
- error:
{ "error": "some_user_facing_error_description" }
addAccessKey
: add an access key to the user's NEAR account. Fails if the linked account is non-custodial (i.e. they linked rather than created an account).- params: follows serde's externally-tagged enum representation for a to-be-created enum that captures the format of NEAR's two access key types - Full, and FnCall
- result: empty if successful
- error:
{ "error": "some_user_facing_error_description" }