Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.byzantine.fi/llms.txt

Use this file to discover all available pages before exploring further.

All notable changes to this project will be documented in this page. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.19.0] - 2026-05-12

πŸ› Bug Fixes

  • (nonce) Retry broadcast once after rebuilding the wallet provider

πŸš€ Features

  • (deploy) Add support for blue/green deployment in the workflow

[1.18.1] - 2026-05-11

πŸš€ Features

  • (sandbox) Auto approve applicant if sandbox mode to skip manual review
  • (email) Send email if a Bridge payment is under review

πŸ› Bug Fixes

  • (onboarding) Override address fields with Sumsub basic-Latin transliteration before sending to Bridge

[1.18.0] - 2026-05-06

πŸš€ Features

  • (getter) Endpoint to get pages of all the transactions of integrator’s customers -> /get-all-transactions

🚜 Refactor

  • (tx-types) Introduce funds_received types for onramps
  • (tx-type) Introduce β€œbusiness” tx type and handle β€œon_ramp_only” tx. New response struct for transactions getters.
  • (migration) Python script to populate past onramps only transactions in DB
  • (clean) Remove deprecated OTP functions

[1.17.3] - 2026-04-30

πŸš€ Features

  • (alert) Telegram notifications when a customer is created on Bridge (success or error)
  • (env) Remember DEPLOY_ENV variable and skip whitelisting on sandbox
  • (nonce) Use the alloy cached nonce manager to prevent nonce conflicts

πŸ› Bug Fixes

  • (emails) Should send the resubmission-requested email
  • (bridge-api) Configure timeouts for BridgeApi reqwest client

βš™οΈ Miscellaneous Tasks

  • (emails) Update turnkey email template to v2

🚜 Refactor

  • Remove unnecessary #[derive(Clone)] from AppState and service structs

[1.17.2] - 2026-04-27

πŸ› Bug Fixes

  • (gas-filler) Increase estimated gas_limit by 25% if not provided in the tx

[1.17.1] - 2026-04-23

πŸ› Bug Fixes

  • (bridge-webhook) Support the new virtual account activity types (β€˜refund_in_flight’, β€˜refund_failed’)
  • (getter) get-user-details does not revert if address questionnaire is empty

πŸš€ Features

  • (logs) Enhance error logs in case of tx failure
  • (getter) Add per chain is_smart_account field and bank accounts details in /get-account-details
  • (logs) Enhance telegram notifications content en design

[1.17.0] - 2026-04-22

πŸš€ Features

  • (notify) Set up a Telegram bot to send alerts in real time
  • (simulation) Simulate transaction (eth_simulateV1 rpc call) before broadcast
  • (tx-status) New transaction status for revert, and simulation failed: reverted and simulation-failed

πŸ› Bug Fixes

  • (rounding) /get-account-balances returns same number of decimals (for balance) as the underlying asset

Clean

  • Remove deprecated /send-transaction-otp endpoint

[1.16.0] - 2026-04-17

πŸš€ Features

  • (multi-tx) Allow the signing of multiple transactions with one passkey prompt
  • (vault-upgrade) Implement the /get-vault-upgrade-payload-passkey
    Creates a withdrawal tx from the Base vault and a deposit tx to the Ethereum vault
  • (vault-upgrade) Logic to sign and broadcast the vault-upgrade transaction
  • (transactions) Returns immediately the transaction_hash instead of waiting for the transaction_receipt
    Increase API response time
  • (webhook) Handle liquidation_address.drain webhook for off-ramps status and vault-upgrades deposit tx broadcast

[1.15.3] - 2026-04-14

βš™οΈ Miscellaneous Tasks

  • (gh-actions) Update GitHub Actions to v6

πŸ› Bug Fixes

  • (webhook) Strip email suffix from Bridge customer events before user lookup

πŸš€ Features

  • (doc) Restore asset-manager endpoint + clean up swagger + protect all endpoints with integrator-auth
  • (security) Protect admin swagger with a UI Basic Auth (password)

[1.15.2] - 2026-04-10

Clean

  • (database) Do not use anymore the public schema (old indexer)

Wip

  • (database) Re-arrange and rename off_ramp_addresses tab

[1.15.1] - 2026-04-09

πŸš€ Features

  • (bridge) Can update Bridge customer data from bridge_account_id with PUT endpoint
  • (log) Add error logging for background transaction broadcast

πŸ› Bug Fixes

  • (kyb) Add STATE_REGISTRY doc in the Bridge doc mapping + fallback for business_trade_name
  • (emails) Do not return before emails if ApplicantReviewed email for non ubos
  • (bridge) Don’t send state to Bridge if not USA or Canada address

🚜 Refactor

  • (onboarding) Delete init-account-creation and complete-account-creation endpoints

[1.15.0] - 2026-04-07

πŸš€ Features

  • (data) Split user_name into first_name and last_name

[1.14.5] - 2026-04-03

πŸš€ Features

  • (onboarding) Add applicant tags on Sumsub AND self custodial wallet support
  • (migration) Migrate sumsub applicants to last up to date levels
  • (logs) Display Bridge create_customer response
  • (kyb) Can request entity check when adding ubos
  • (kyb) Can request entity check on ApplicantReviewed ubos webhook
  • (kyb) Do not request entity check if company is already approved

πŸ› Bug Fixes

  • (serde) Make town optional for deserialization
  • (kyb) Split the last ’+’ on email instead of the first one
  • (kyb) Request entity check code location
  • (bridge) Send postal code in Ruby regex format to Bridge API

[1.14.4] - 2026-03-27

πŸ› Bug Fixes

  • (kyb) Extract company documents to send from get_image_metadata (cannot rely on the outcome of get_id_verification_results)

🚜 Refactor

  • (kyc) Make High Risk questionnaire for individuals mandatory

[1.14.3] - 2026-03-26

πŸ› Bug Fixes

  • (kyb) Insert beneficiary in DB before creating it on Sumsub to avoid race condition

πŸš€ Features

  • (webhook) Update or create associated person on Bridge for Reviewed GREEN Sumsub Webhook

[1.14.2] - 2026-03-26

πŸš€ Features

  • (kyb) Implements endpoint /add-associated-person and /update-associated-person

πŸ› Bug Fixes

  • (kyb) Do not consume business_activities before sending the business_industry to Bridge

[1.14.1] - 2026-03-25

🚜 Refactor

  • (webhook) Remove AwaitingUser webhook handler
  • (kyb) Make proof of source of fund document mandatory for entities

[1.14.0] - 2026-03-24

πŸš€ Features

  • (patch) Implement /update-entity-account endpoint
  • (webhook) Create Bridge business customer on onHold GREEN Sumsub webhook for entities

πŸ› Bug Fixes

  • (onboarding) Do not request applicant check if status is already Active
  • (getters) Treat ApproveDeposit transactions as Deposit for fiat instructions

βš™οΈ Miscellaneous Tasks

  • chore(doc): Restructure the endpoint tags and change description

[1.13.1] - 2026-03-19

βš™οΈ Miscellaneous Tasks

  • (getters) Enrich get-customers endpoint with verification status, timestamps and user details

πŸ› Bug Fixes

  • (kyb) Remove high risk info questionnaire from entity required docs

[1.13.0] - 2026-03-19

πŸš€ Features

  • (kyb) Add the RepresentativeTitle questionnaire in KYB flow
  • (kyb) Get and return the missing documents and data for an entity
  • (kyb) Request sumsub validation check on associated-persons if all documents are provided

🚜 Refactor

  • (kyb) New body for create-entity endpoint
  • (kyb) Change EntityDocumentType enum to match sumsub doc type
  • (kyb) Enhance the way of sending docs to sumsub
  • (kyb) New logic to create a beneficiary - Database update in ApplicantCreated webhook
  • (kyb) Make high-risk-business-activities questionnaire optionnal

βš™οΈ Miscellaneous Tasks

  • (style) Rename create-entity by create-entity-account

πŸ› Bug Fixes

  • (bridge) Add +user_id suffix to email for individual customer uniqueness
  • (bridge) Use Sumsub image metadata to correctly assign ID card front/back sides

[1.12.1] - 2026-03-13

πŸ› Bug Fixes

  • (bridge_repository) Make country optional in GetCustomerAddressReponse

βš™οΈ Miscellaneous Tasks

  • (kyc) Verify request consistency when creating individual account

[1.12.0] - 2026-03-10

πŸš€ Features

  • (onbaording) New PATCH endpoint /update-individual-account to modify or complete existing individual user details
  • (onbaording) Can check verification documents status and return the missing docs in create-individual-account and update-individual-account
  • (bridge) Create customer on Bridge when sumsub applicant is onHold and GREEN -> when all the sumsub checks pass
  • (compliance) Save in the DB (accounts table) the Byzantine T&C signed timestamp

🚜 Refactor

  • (onbaording) rename create-user by create-individual-account + make all the fields optional (see the PATCH endpoint to complete the kyc)
  • (onbaording) Make bridge_account_id Optional
  • (onbaording) Remove get-tos-acceptance-link endpoint -> use the account_id instead

βš™οΈ Miscellaneous Tasks

  • (logs) Imporve Bridge webhooks logs

[1.11.0] - 2026-03-03

πŸ› Bug Fixes

  • (emails) BYZ_USER_ID variable must be a string (not a UUID)
  • (accounts) Correct user account role for self_custodial accounts creation
  • (getters) Fallback user details to beneficiary id if individual user does not exist

πŸš€ Features

  • (getters) Enhance get-user-details endpoint response and query (can be called with either user’s uuid or email)
  • (getter) Enhance get-entity-details endpoint response
  • (getter) Implement get-customers to return all the business and individual customers of an integrator
  • (getter) Implement get-account-details endpoint
  • (migration) Implement script and SQL migration to migrate beneficiary users for multi accounts feature

🚜 Refactor

  • Script to delete duplicate emails from DB
  • Pair (integrator_id, email) MUST be unique in users table
  • Cannot create multiple individual accounts with the same email
  • Fill the beneficiaries table when entity is created
  • Add beneficiaries in account users junction table
  • (sumsub) Remove external_user_id from BeneficiaryInfo structure (DON’T fail if beneficiary-random-*)

Optim

  • Insert new account on DB when bridge_customer_id is known
  • Add parallelism in sumsub webhook handler
  • Remove code duplication in invite-users endpoint

[1.10.0] - 2026-02-23

Clean

  • (approve) Remove approval query endpoints

πŸš€ Features

  • (batching) Batch approvals and deposits in get-deposit-payload-passkey
  • (batching) Batch approvals and deposits in sign-payload-passkey

🚜 Refactor

  • New approved_vaults table for batching

[1.9.1] - 2026-02-20

πŸ› Bug Fixes

  • (sumsub-data) Make sumsub postCode optional + fallback to address questionnaire

πŸš€ Features

  • (getter) get-account-balances endpoint. Returns the positions on all Byzantine vaults (optional filter by chain_id), the current vault price_per_shares and the wallet balance (idle tokens).
  • (getter) Add graphql_client and U256 utility for big numbers
  • (getter) Define Indexer GraphQL schema and queries
  • (sumsub) Add ID and share_size fields to Beneficiary struct
  • (sumsub) Implement Sumsub API method to unlink beneficiaries
  • (emails) Include SelfCustodial users in root-level account queries

🚜 Refactor

  • (onboarding) Sequence Sumsub questionnaire submissions
  • (onboarding) Handle existing beneficiaries and re-linking to correct sumsub user
  • (emails) β€œIncomplete” bridge status not considered as a rejection
  • (style) Improve readability of account_data handler

[1.9.0] - 2026-02-17

βš™οΈ Miscellaneous Tasks

  • (getters) Returns the invitations user role in the getters
  • (getters) Returns user_id in pending_invitations
  • (getters) Returns full data in get-invitations endpoints
  • (webhooks) Remove HashMap to store Bridge webhook pubkey
  • (dapp-endpoints) Set account_name, user_name, and entity_name in init-account-creation
  • (style) Filter out Account in invitation email

πŸ› Bug Fixes

  • (getters) Customer getters don’t revert if KYC not started
  • (otp) Use parent-org id for init and verify otp
  • (webhooks) Bridge webhook handler doesn’t return errors anymore if account not found
  • (otp) Sender and reply_to emails for init-otp
  • (otp) Otp-auth cryptography bug fixes
  • (webhooks) Bridge webhook handler doesn’t return errors anymore if account not found
  • (onboarding) Handle existing beneficiaries in create-entity
  • (onboarding) Allow bridge customer id update if previous one not found

πŸš€ Features

  • (dApp-endpoints) Add account id and inviter id in invitations getters
  • (dApp-endpoint) Can update an inactive bridge customer id in complete-account-creation
  • (database) Adds bool to know if kyc/kyb emails have already been sent
  • (emails) Send KYB submitted email to root users + use bool in DB to not send duplicates
  • (onbaording) Don’t recreate sumsub applicant if already exists
  • (onboarding) Allow invitation of an existing user
  • (emails) OTP code not alphanumeric with 6 digits
  • (emails) Add VAULT_ADDR in email app link
  • (emails) Customizes invite link in email
  • (onboarding) Approve on sumsub and whitelist self-custodials when Bridge validate KYC

🚜 Refactor

  • (onboarding) Create beneficiaries in ApplicantAwaitingUser webhook

[1.8.1] - 2026-02-06

πŸš€ Features

  • (getter) Replace get-invitations-by-user_id by get-invitations-by-email
  • (getter) Enhance get-entity-details by providing team members and roles and pedning invitations

βš™οΈ Miscellaneous Tasks

  • Add onchainTxAmount in response of get-transactions
  • Update invitation table + send invitation-accepted email

[1.8.0] - 2026-02-06

πŸš€ Features

  • (user) /create-authenticators-otp endpoint to add a passkey from an otp session

[1.7.0] - 2026-02-05

πŸš€ Features

  • (otp_auth) init-otp endpoint to send a code to a specific email address
  • (otp_auth) otp-auth endpoint to verify the otp code and generate a session token
  • (otp_auth) otp_sessions DB table and schemas

[1.6.0] - 2026-02-04

πŸš€ Features

  • (root-quorum) Endpoints to update users role / root quorum in a Byz account. See /get-update-users-role-payload-passkey and /update-users-role

[1.5.2] - 2026-02-03

πŸš€ Features

  • (database) Invitations database table
  • (getters) Can query invitations by account id (/get_invitations_by_account_id) or user id (/get_invitations_by_user_id)
  • (emails) Team member invited emails

🚜 Refactor

  • (multi-user) Create OTP user by default during invitation (no passkey)

πŸ› Bug Fixes

  • (endpoints) Adjust /get-invite-users-payload-passkey and /invite-users endpoints with new migration

[1.5.1] - 2026-01-28

πŸš€ Features

  • (kyb) Sumsub proof of source of funds doc submission
  • (emails) KYC/KYB rejected email
  • (emails) Send finalize-deposit email if on-ramp amount doesn’t match expected amount

βš™οΈ Miscellaneous Tasks

  • (emails) No KYC status emails for ubos
  • (emails) Integrate resend templates
  • (emails) Send KYB submitted email during ApplicantReviewed webhook

πŸ› Bug Fixes

  • (sumsub) Retries with exponential backoff for request_applicant_check
  • (create-entity) Do not spam the request-applicant-check endpoint

Optim

  • (speed) Create sumsub and bridge account in parallel

[1.5.0] - 2026-01-25

πŸš€ Features

  • (multi-users) invite-users endpoint. Emails not implemented yet
  • (multi-users) get-invite-users-payload-passkey endpoint
  • (multi-users) Passkey auth in invite-users endpoint

βš™οΈ Miscellaneous Tasks

  • (root-users) Add the turnkey_user_id in the API database
  • (root-users) Stores turnkey user id for byz users

[1.4.4] - 2026-01-22

πŸš€ Features

  • DApp endpoints CAN accepts self custodials wallets

[1.4.3] - 2026-01-22

πŸš€ Features

  • Create beneficiary byz users for dApp entities.
  • Fetch beneficiaries byz id from sumsub applicant_id if needed

[1.4.2] - 2026-01-21

πŸ› Bug Fixes

  • (bridge-webhook) Make amount field optional

βš™οΈ Miscellaneous Tasks

  • (db-schemas) Update schemas to last DB version

[1.4.1] - 2026-01-16

βš™οΈ Miscellaneous Tasks

  • (schema) New schemas for moving average
  • Reduces / removes security buffer for on-ramps with same currency

[1.4.0] - 2026-01-13

πŸš€ Features

  • Remove endpoints related to transactions pre-signatures *-transaction-passkey and old verifiers. Use now the *-payload-passkey endpoints

βš™οΈ Miscellaneous Tasks

  • Adapt OTP endpoints to new verifiers (OTP endpoints still not finished)

[1.3.2] - 2026-01-13

βš™οΈ Miscellaneous Tasks

  • (schema) New indexer async vault schema

[1.3.1] - 2026-01-12

πŸ› Bug Fixes

  • (deps) Update alloy version and fillers used

[1.3.0] - 2026-01-12

πŸš€ Features

  • (async-vault) Can withdraw from euros async vaults

[1.2.4] - 2026-01-09

πŸ› Bug Fixes

  • (async-vault) Update AsyncVault struct to new indexer schema

[1.2.3] - 2026-01-09

πŸ› Bug Fixes

  • (webhook-pubkey) Base64 representation of the pubkey in the .env

[1.2.2] - 2026-01-08

βš™οΈ Miscellaneous Tasks

  • Set bridge webhook pubkeys in .env + take config variables when reading them
  • Add Base support for gate contracts

[1.2.1] - 2026-01-08

Logs

  • Display logs when sending applicant status emails

βš™οΈ Miscellaneous Tasks

  • (on-ramp) Add expected_deposit_amount in SourceDepositInstructions

πŸ› Bug Fixes

  • (doc) CamelCase for payment rail virtual account data

[1.2.0] - 2026-01-08

πŸš€ Features

  • (async-vault) EUR Vault (aka Async Vault) indexer schema
  • (async-vault) EUR Vault logic in /get-approve-payload-passkey and /get-deposit-payload-passkey query endpoints
  • (async-vault) EUR Vault logic in /v1/submit/sign-payload-passkey for approvals and deposits + bridge webhook for on-ramps

[1.1.3]

πŸš€ Features

  • (top-vaults) Add is_asynchronous data in top_vaults table

[1.1.2] - 2026-01-07

πŸ“š Documentation

  • (schema) Fix OpenAPI case style in sourceDepositInstructions. Use camelCase in the doc.

[1.1.1] - 2026-01-06

πŸ› Bug Fixes

  • (gas-sponsorship) Correct the digest computation
  • (gas-sponsorship) Add 27 to v signature component

[1.1.0] - 2026-01-06

πŸš€ Features

  • (email) Design the β€œFunds Deposited” email
  • (email) Design the β€œFunds Received” email
  • (email) Send β€œFunds Deposited” email if tx successfully executed
  • (email) Send β€œFunds Received” email if tx reverts on-chain

πŸ› Bug Fixes

  • (email) Footer in gmail
  • (email) Skip email notification in Sumsub webhook when user is not found

🎨 Styling

  • (email) Format first name from sumsub extracted data: Remove middle names and use Pascal case

[1.0.0] - 2026-01-05

πŸ’₯ Breaking Changes

  • Endpoints /get-approve-transaction-passkey, /get-deposit-transaction-passkey and /get-withdraw-transaction-passkey are deprecated.
  • Endpoint /virtual-account-activity won’t support anymore the broadcasting of pre-signed transactions (only pre-signed payloads)
  • Field signed_tx in database stores now the signed payload, not the signed transaction.

πŸš€ Features

  • /get-approve-payload-passkey endpoint
  • /get-deposit-payload-passkey endpoint
  • /get-withdraw-payload-passkey endpoint
  • On-ramp logic in /sign-payload-passkey endpoint
  • Withdraw, approve and instant deposit logic in /sign-payload-passkey endpoint
  • Handle gas sponsorhip in bridge webhooks for on-ramps
  • Verify account is delegating to atlas before creating a payload to sign
  • Make ActivateAccountRequestBody TurnkeySignable
  • Use a Rust match pattern for processing the signed payload
  • Sponsor Atlas executeCall transaction
  • Save the tx nonce in the DB (turnkey_transactions table)

βš™οΈ Miscellaneous Tasks

  • Old RequestVerifier methods
  • Refactor the TxVerifier struct
  • Enhance error messages in verify_transaction
  • Verify_transaction -> verify_transaction_old
  • Store the compacted signature in the DB