Spring Development Bank app icon

Multi-currency crypto neobank · ASEAN

Reaching Spring Development Bank's wallet and on-chain ledger

Most of SDB's value sits in two places at once. Some of it is on a public blockchain — the SDB token is minted on Ethereum and bridged to Polygon, and deposits land as USDT on Polygon PoS, all of which any node can read. The rest is off-chain, behind the account login: per-currency balances across roughly eleven currencies including digital gold, free in-network transfers, real-time FX quotes, staking and SDB Earn payouts. An integrator wants both halves stitched into one feed. That split is the whole job here, and it is what shapes how we build the client.

The bottom line: read the chain for settlement truth, read the consented portal for the off-chain ledger, and reconcile the two. We would not chase a regulator gateway for this app — there isn't a workable one in its situation — and we don't need to. The account holder's own consent plus the open Ethereum and Polygon ledgers cover what an integrator actually needs.

What data lives inside SDB

Each row below is a real surface of the app, where it comes from, how fine-grained it is, and what you would build on it.

Data domainWhere it originatesGranularityWhat an integrator does with it
Multi-currency balancesApp wallet profile (off-chain ledger)Per currency, near real-timePortfolio aggregation, available-balance display
On-chain SDB holdingsEthereum + Polygon token balancesPer transaction, public ledgerConfirm holdings, verify against the app figure
USDT depositsPolygon PoS deposit addressesPer transfer, block-levelCredit confirmation, deposit webhooks
In-network transfersApp transfer ledger (free SDB-to-SDB)Per transactionPayment status, reconciliation
Exchange ratesApp FX quotingReal-time quoteConversion preview, pricing checks
Staking & SDB EarnStaking ledger, daily payoutsDaily payout recordsYield accounting, statement lines

Authorized routes to the data

On-chain extraction (Ethereum + Polygon)

The blockchain side needs no one's permission to read. SDB token transfers and USDT deposits on Polygon PoS are public, so a node or explorer query returns holdings, deposits and confirmations directly. This is the most durable route — chain data does not change shape when the app ships a new build. We point the client at an RPC endpoint and a block cursor, and it keeps pace with finality.

Consented portal integration (protocol analysis)

Balances, the off-chain ledger, FX quotes, transfers and staking payouts live server-side behind the account login. We map the session and token chain the app uses, then read those surfaces under the account holder's authorization. Effort is moderate; durability depends on the app's release cadence, which is why the build ships with tests that catch a changed field. Access is arranged with you during onboarding, against a consenting account.

Native export, where present

If a statement or transaction export exists in-app, it serves as a low-effort fallback and a cross-check against the live reads. It is not the primary feed — it is a reconciliation aid.

For most use cases we would run the first two together: the chain gives you settlement that can be proven independently, and the consented portal gives you the off-chain ledger the chain cannot see. Pick the portal alone only if on-chain confirmation is irrelevant to you.

What lands in your repo

  • Runnable Python and Node.js client — on-chain readers (token balances, USDT deposit confirmation on Polygon PoS, SDB across both chains) plus a consented portal session client, exposed as one normalized feed.
  • Deposit and transfer poller — a per-address block-cursor worker that picks up new SDB and USDT activity as blocks finalize and emits events you can route into your own queue.
  • Automated test harness — fixtures for each surface so a changed response field shows up as a failed assertion before it reaches your data.
  • Normalized cross-chain schema — one record shape that nets the Ethereum/Polygon split and the off-chain balances into a single per-currency view.
  • OpenAPI/Swagger description of the mapped portal surface, for your own tooling.
  • Protocol and auth-flow report — the session/token chain as it actually works on this app.
  • Interface documentation and data-retention guidance.

A read against the live surfaces

Illustrative, trimmed from the kind of client we ship. The SDB token address is hedged to the block-explorer listing; the portal host is a placeholder for the surface mapped during the build.

# Confirm an SDB/USDT deposit on Polygon PoS, then read the off-chain balance.
from web3 import Web3

polygon = Web3(Web3.HTTPProvider("https://polygon-rpc.com"))
# SDB token contract, per the block-explorer listing (verify before use):
SDB = polygon.to_checksum_address("0xdf136ef2afd305fb6334d53fe4ff9ae82f5b3180")

def new_deposits(deposit_addr, token, cursor):
    # resume from the last seen block; never rescan the whole chain
    start = cursor.get(deposit_addr, "latest")
    logs = polygon.eth.get_logs({
        "fromBlock": start,
        "address": token,
        "topics": [TRANSFER_SIG, None, topic(deposit_addr)],
    })
    cursor[deposit_addr] = polygon.eth.block_number
    return [decode_transfer(l) for l in logs]
# Off-chain ledger: balances behind the account holder's session.
import requests

r = requests.get(
    "https://app.springdevelopmentbank.example/api/balances",  # surface mapped during analysis
    headers={"Authorization": f"Bearer {session_token}"},
)
if r.status_code == 401:           # session expired -> refresh once, then retry
    session_token = refresh(session_token)
    r = requests.get(r.url, headers={"Authorization": f"Bearer {session_token}"})
r.raise_for_status()

for line in r.json()["currencies"]:   # ~11 currencies, incl. digital gold
    print(line["code"], line["available"], line.get("chain", "fiat"))

Engineering notes from the build

Two things about this app drive real decisions in the client, and we handle both rather than hand them to you as homework.

Dual-chain reconciliation. SDB is minted on Ethereum and bridged to Polygon, so the same logical holding can appear on two networks. We read each chain separately, tag balances by network, and net the bridged portion, so the unified number matches what the app shows the holder instead of double-counting the split.

On-chain settlement versus the in-app credit. A USDT deposit confirms on Polygon PoS, but the app credits its own internal ledger, and the two can sit a few blocks apart. We design the sync so a confirmed on-chain transaction is matched to its portal credit, with the lag window handled explicitly rather than assumed away.

Access and any sandbox or consenting test account are set up with you during onboarding; the build runs against that, not against a wall you have to clear first.

Interface evidence

Store screenshots of the app, for reference on the surfaces described above.

Spring Development Bank screenshot 1 Spring Development Bank screenshot 2 Spring Development Bank screenshot 3 Spring Development Bank screenshot 4
Spring Development Bank screenshot 1 enlarged
Spring Development Bank screenshot 2 enlarged
Spring Development Bank screenshot 3 enlarged
Spring Development Bank screenshot 4 enlarged

Sources & review

Checked on 7 June 2026 against the app's store listings, its public site, and news and token-data coverage of the SDB token's Ethereum/Polygon split, its Polygon PoS deposits, and the bank's disputed status in Myanmar. The token contract address shown above came from a block explorer and should be re-verified at build time.

Primary references: RFA — Myanmar's shadow government sets up crypto bank, The Register — Myanmar's first crypto-based bank launches, The Irrawaddy — SDB crypto after MEXC listing, Bitrue — Introduction to the SDB token.

Compiled by OpenFinance Lab engineering, 7 June 2026.

Questions integrators ask

The same SDB balance shows up on-chain and inside the app — which one do you treat as correct?

Both, mapped against each other. On Polygon PoS and Ethereum we read token movement straight from the chain; inside the app the credited ledger can trail a confirmed transfer by a few blocks. The build matches a confirmed on-chain transaction to its portal credit, and flags any holding that turns up on one side but not the other.

How does new activity get picked up — do you poll, or push?

On-chain, we keep a block cursor per address and pull new SDB and USDT transactions as blocks finalize, so a re-run resumes from the last seen block instead of rescanning. The off-chain ledger syncs the consented portal session on a schedule you set. The packaged Python and Node.js client exposes both as one feed.

SDB sits on both Ethereum and Polygon — how do you avoid double-counting it?

We treat the bridged supply as one logical holding. The client reads each network on its own, tags balances by chain, and nets the bridged portion so the unified figure matches what the account holder sees in the app rather than summing the two sides twice.

Spring Development Bank's licensing is disputed — what authority do you work under?

The account holder's. The bank is licensed by the National Unity Government's interim authority and that status is contested inside Myanmar, so we don't route through any banking-regulator gateway. We read what the consenting account holder authorizes plus the public Ethereum and Polygon ledgers, log the consent, and keep the data set minimal.

A working SDB integration usually starts with the chain reads, since they prove out fastest, then layers the consented portal ledger on top — a one-to-two-week cycle for a first drop. You give us the app name and what you want out of its data; we handle access, consent and the build. The runnable source goes for $300, paid only once you are satisfied with what was delivered; or skip the upfront cost entirely and call our hosted endpoints, paying just for the calls you make. Either way, the next step is the same — tell us what you need from SDB and we will scope it.

App profile — Spring Development Bank (factual recap)

Spring Development Bank (SDB) is a mobile-first, blockchain-powered multi-currency neobank, package ID com.springdevelopmentbank.sdbankmobile per its Play Store listing, available on Android and iOS. It lets users hold and convert across roughly eleven currencies including digital gold, transfer between SDB accounts for free, see real-time exchange rates, deposit and manage digital assets, and access staking and investment features. Its SDB token is minted on Ethereum and bridged to Polygon, and deposits run over Polygon PoS in USDT. The bank was launched by Myanmar's National Unity Government in 2023 and describes itself as the first ASEAN crypto-native bank; its licensing claim is contested by the military junta's central bank. Figures and identifiers here come from the cited public sources and should be confirmed at build time.

Rechecked 2026-06-07