Skip to content
bFunds
97

Protocol

Contract & status reference

Detailed status definitions, signing rules and published API capabilities.

Buying one stock and holding an index are different products

They differ in what you hold, who custodies it, and how you get out. The interface never blurs the two.

DifferenceBuy it directlytoken in your walletHold an indexvault shares
What you holdThe bStock token itself, at its own contract address.ERC-20 shares of a vault that holds the basket.
CustodyYour wallet. Nothing of ours touches it after the swap.A non-custodial contract. No platform wallet holds user assets.
How you exitSell it back through the same route, whenever a route exists.Redeem in kind, pro rata: you receive the underlying tokens, not cash.
Issuer restrictionsApply to you directly. A freeze stops your transfer.Apply per leg. One restricted leg reverts the whole redemption.
Price you act onAn executable quote with a deadline and a minimum output.A fixed-block preview. It is not a promise of execution.
RebalancingYours to do. We hold no position and send no instruction.Only through a reviewed recipe, under governance, within fixed limits.
Choose it whenYou want one name, and you want the token in hand.You want a theme in one position, with the weights checked by contract.

What stays the same in both

The asset is identified by chain id and address, never by symbol. The same evidence chain admitted it. The issuer can freeze or restrict either path, and neither promises you can exit.

What is open today

Execution depends on the path: index shares require a registered vault’s current chain-specific capability; direct buying requires an executable route and measured depth. Configured addresses, test evidence and production permission are separate.

Verification status

Source and code provenance. It says nothing about whether an asset may be used.

Testnet technical status · DISCOVEREDImported as a candidate from an archived source. Nothing is confirmed yet.
Testnet technical status · SOURCE_REVIEWThe issuer document is under review.
Testnet technical status · ONCHAIN_VERIFIEDOnchain capability evidence was recorded at a fixed block.
Testnet technical status · VERIFIEDSource and onchain evidence were both reviewed and approved independently.
Testnet technical status · REVOKEDA previous approval was withdrawn. Treat this asset as unverified.

Operation permission

Whether an asset may be used, and in which direction. It is decided independently from verification.

Display onlyMay be displayed only. No new exposure and no fund use.
ActiveOperation is permitted under the registry's current rules.
Exit onlyNo new exposure. Existing exposure may be exited.
PausedAffected exits are disallowed as well. Expect operations to fail.
RevokedTerminal. No new exposure; exit only if the token itself still permits transfer.

Why the two are separate

An asset can be fully source-verified and still be display-only, and a previously active asset can be paused without its evidence changing. Collapsing the two states into one badge would hide the difference between "we checked the issuer document" and "you may build a fund with this".

Capability status

The API answers 503 CAPABILITY_UNAVAILABLE for a capability that is not implemented. This interface shows that as unavailable. It never substitutes an empty list, a zero balance or a successful transaction.

CapabilityState
Asset registry directory
Implemented
Asset verification provenance
Implemented
Archived official sources
Implemented
Fixed-block token capability
Implemented
Reference price publication
ImplementedNeeds a licensed price feed; 503 until then
Public address check
Implemented
Wallet sign-in
Implemented
Session and roles
Implemented
Business write challenge
Implemented
Published strategy discovery
Implemented
Strategy drafts
Implemented
Strategy publication
Implemented
Read-only share link
Implemented
Deterministic fact check
ImplementedNeeds a licensed price feed; 503 until then
Historical backtest
ImplementedNeeds a licensed price feed; 503 until then
Personal watchlist
Implemented
Runtime chain and deployment capability
Implemented
Canonical testnet in-kind preview
ImplementedNeeds a deployed contract address
Registered fund directory
Implemented
Fixed-block fund holdings
ImplementedNeeds a canonical fixed-block snapshot; 503 until then
Reference NAV
ImplementedNeeds a licensed price feed; 503 until then
Sparse NAV history
ImplementedNeeds a licensed price feed; 503 until then
Fund activity
ImplementedNeeds a canonical fixed-block snapshot; 503 until then
Wallet positions
ImplementedNeeds a canonical fixed-block snapshot; 503 until then
Wallet activity
ImplementedNeeds a canonical fixed-block snapshot; 503 until then
Transaction intents
Implemented
Asset review queue
Implemented
Asset source review
Implemented
Asset activation
Implemented
Restricted fund applications
Implemented
Fund governance record
Implemented
Legacy basket quote
Not in contractNot declared in the contract; answers 503
Basket buy quote
ImplementedNeeds an approved route provider; 503 by default, and a success is simulation only
Basket sell quote
ImplementedNeeds an approved route provider; 503 by default, and a success is simulation only
Vault deposit quote
ImplementedNeeds an approved route provider; 503 by default, and a success is simulation only
Vault redeem quote
ImplementedNeeds an approved route provider; 503 by default, and a success is simulation only

How a business write is authorized

A login session proves who you are; it does not authorize a change. Every write serializes its body once, hashes those exact bytes with SHA-256, asks the server for a one-time challenge bound to that method, path and hash, has the wallet sign the server's exact message, and then sends those same bytes with the nonce and signature. Changing one byte, the path or the method invalidates the signature.

A nonce that already succeeded cannot be reused, and the interface never silently creates the same record again. If a response is lost, the outcome is looked up by nonce before anything is retried.

What wallet sign-in means

Sign-in proves you control an address, using a message the server generated. It authorizes API calls for eight hours. It never authorizes a token transfer, an allowance or a fund operation, and it grants no reviewer or governor role.

How amounts are handled

Raw token quantities are integers, carried as BigInt or exact decimal strings. The interface performs no floating-point arithmetic on an amount, and it applies no multiplier until the contract publishes that multiplier's scale.

Risk and limits

  • Mainnet production remains disabled. Testnet deployments and synthetic test assets do not satisfy production launch gates.
  • No price source, reference NAV or executable quote is published. A preview is never a quote promise.
  • Registry records imported from the seed are candidates. A candidate is not verified and is not tradable.
  • Tokenized stock issuers can restrict transfers. No interface here can guarantee that a restricted token can be exited.