Skip to main content
If you’re integrating headless (your own UI calling the engine directly), this page is the on-chain surface you’ll need. Embed integrations don’t need this page — the iframe handles everything.

BarkerEngine is ERC-4626

BarkerEngine is a standard ERC-4626 vault. If your stack already has ERC-4626 helpers (Wagmi / viem / OpenZeppelin SDK), they work out of the box — engine.balanceOf(user) returns shares, engine.convertToAssets(shares) returns asset value. The engine address is per-partner, returned by GET /api/partner/products as engine_contract_address. There is no static “Barker engine per chain” — every partner has their own.

Functions you’ll call

Minimal ABI fragment (copy-paste)

For the full ABI, pull the verified contract from the chain explorer using engine_contract_address.

Permit (optional, saves one tx)

If the underlying token (USDC, USDT, DAI…) supports EIP-2612 permit, you can swap the approve transaction for a signed message — one tx instead of two.
BarkerEngine doesn’t bundle permit + deposit in one function. Use multicall (Wagmi/viem) or a thin partner-owned router contract.

Safety properties

  • Non-upgradeable per deployment — once deployed, bytecode never changes.
  • No admin withdrawal path — funds can only exit via the user’s redeem / withdraw.

What’s next