Provider Methods
Complete reference of BakoProvider methods.
Static Methods
create()
Create a provider with API token authentication.
static async create(
url: string,
options: BakoProviderOptions | BakoProviderAPITokenOptions
): Promise<BakoProvider>Example:
const provider = await BakoProvider.create(
'https://mainnet.fuel.network/v1/graphql',
{ apiToken: 'your-token' }
);setup()
Initialize interactive authentication flow.
static async setup(
params: BakoProviderSetup
): Promise<BakoProviderAuth>Example:
const auth = await BakoProvider.setup({
address: walletAddress,
provider: networkUrl,
encoder: TypeUser.FUEL
});
// Returns: { code, token, encoder }authenticate()
Complete authentication with signed challenge.
static async authenticate(
options: BakoProviderAuthOptions
): Promise<BakoProvider>Example:
const provider = await BakoProvider.authenticate({
challenge: auth.code,
signature: signedChallenge,
encoder: TypeUser.FUEL,
address: walletAddress,
serverUrl: 'https://api.bako.global'
});Instance Methods
getWorkspaces()
Retrieve user's workspaces.
async getWorkspaces(): Promise<Workspace[]>Example:
const workspaces = await provider.getWorkspaces();
workspaces.forEach(ws => {
console.log(`${ws.name} (${ws.id})`);
});getToken()
Get user's token balance.
async getToken(): Promise<number>createPredicate()
Create a new predicate (vault).
async createPredicate(
payload: CreatePredicatePayload
): Promise<PredicateResponse>Example:
const predicate = await provider.createPredicate({
name: 'My Vault',
configurable: {
SIGNATURES_COUNT: 2,
SIGNERS: [address1, address2, address3]
}
});findByAddress()
Find a predicate by its address.
async findByAddress(
predicateAddress: string
): Promise<PredicateResponse>Example:
const predicate = await provider.findByAddress('fuel1...');authInfo()
Get current user's authentication info.
async authInfo(): Promise<UserAuthResponse>createTransaction()
Create a new transaction.
async createTransaction(
params: ICreateTransactionPayload
): Promise<TransactionResponse>findTransactionByHash()
Find transaction by hash.
async findTransactionByHash(
hash: string
): Promise<TransactionResponse>signTransaction()
Sign a pending transaction.
async signTransaction(
params: SignTransactionParams
): Promise<SignResponse>sendTransaction()
Send a fully signed transaction.
async sendTransaction(
hash: string
): Promise<TransactionResult>userWallet()
Get user's wallet information.
async userWallet(): Promise<WalletResponse>setCredentials()
Update provider credentials.
setCredentials(
auth: AuthService
): voiddApp Connection Methods
createDapp()
Register a dApp connection.
async createDapp(
dapp: DappPayload
): Promise<DappResponse>disconnectDapp()
Disconnect a dApp session.
async disconnectDapp(
sessionId: string
): Promise<void>changeAccount()
Switch active account in a session.
async changeAccount(
sessionId: string,
vault: string
): Promise<void>Properties
cliAuth
CLI authentication data (when using API token).
cliAuth?: CLIAuthExample:
if (provider.cliAuth) {
console.log('Vault address:', provider.cliAuth.address);
console.log('Version:', provider.cliAuth.version);
}Type Definitions
interface Workspace {
id: string;
name: string;
avatar: string;
}
interface UserAuthResponse {
user_id: string;
address: string;
avatar: string;
workspace: Workspace;
}
interface CLIAuth {
code: string;
address: string;
configurable: any;
version: string;
}