Skip to content
12/Proof

Don't trust us. Check.

Swift is early, and early is exactly when a company has the most reason to overstate itself. So this page does the opposite: it hands you the tools to test the claims, and tells you plainly what has not been built.

Connection — live

Contacting the database…
Measured by
Your browser, not our server
Region
AWS ap-northeast-1
Re-checks
Every 20 seconds

That latency is the real round trip from where you are sitting to the database and back. Open your browser’s network tab and you will see the request.

Security — run it yourself

The three requests below are real. Two of them try to write to the production database — one tries to mint a million coins, one tries to create an administrator. They are sent from your browser with the public key, and you can watch every one of them in your network tab.

  1. 01

    Read the coin ledger without signing in

    Every balance on Swift is derived from this table. If an anonymous request could read it, every holder’s position would be public.

    Not run

    Expected: Returns an empty list — the table is there, and it shows you nothing.

    GET /rest/v1/coin_ledger?select=id,type,amount_swift,status&limit=5
  2. 02

    Credit an account with 1,000,000 SWIFT

    This is the attack that matters. If a browser can write to the ledger, anyone can mint themselves a balance and the whole thing is worthless.

    Not run

    Expected: Refused by row level security before the row is written.

    POST /rest/v1/coin_ledger
    {"user_id":"00000000-0000-0000-0000-000000000000","type":"reward","amount_swift":1000000,"status":"settled"}
  3. 03

    Create an account holding the admin role

    The staff console is gated on a role stored in the profile row. If that row could be written from a browser, the gate would be a suggestion.

    Not run

    Expected: Refused by row level security. Roles are not self-assignable.

    POST /rest/v1/profiles
    {"id":"00000000-0000-0000-0000-000000000000","email":"proof@example.invalid","role":"admin"}

The ledger rule — in full

A balance you can edit is not a balance, it is an opinion. On Swift, a coin balance is not stored anywhere — it is added up from a list of entries, and that list can only be appended to. Correcting a mistake means writing an opposing entry that stays on the record next to the original, the way an accountant does it. Nothing is ever quietly rewritten.

This is not a policy anyone has to remember to follow. It is a rule inside the database, and it refuses the write — including writes from us.

create or replace function public.ledger_is_immutable()
returns trigger language plpgsql as $$
begin
  -- A pending entry may settle or fail. Nothing else may ever change.
  if tg_op = 'UPDATE' then
    if old.status = 'pending' and new.status in ('settled', 'failed')
       and new.amount_swift = old.amount_swift
       and new.user_id = old.user_id
       and new.type = old.type then
      return new;
    end if;
    raise exception
      'coin_ledger is append-only. Write a reversing entry instead of editing entry %', old.id;
  end if;
  raise exception 'coin_ledger entries cannot be deleted (entry %)', old.id;
end $$;

Claim, not a live check

Unlike the checks above, you cannot run this one yourself — proving it requires a signed-in account with entries to edit, and an anonymous visitor has neither. We tested it against this database on 22 September 2026: an attempt to edit a settled entry was refused, an attempt to delete one was refused, moving an entry from pending to settled was allowed, and altering the amount while doing so was refused. Treat that as our word, held to the source above.

What is actually built — as of 22 September 2026

  • Accounts and sign-in

    Built, unproven

    Sign-up, sign-in and email confirmation are wired to the real database. No member of the public has created an account yet.

  • Coin ledger

    Live

    Append-only, enforced by the database. Balances are derived from entries, never stored as an editable number.

  • Identity verification (KYC)

    Not built

    No provider is integrated. This is required before any purchase can settle, which is why no purchase can settle.

  • Taking payments

    Not built

    No payment gateway is connected. Every rail shown at checkout is selectable so you can see the flow, and none of them can charge you.

  • Market price

    Not built

    There is no market, so there is no market price. ₹100 is Swift’s own offer price and is labelled that way everywhere it appears.

  • Swift Store

    Built, unproven

    The catalogue, cart and checkout work end to end inside a demo session. No merchant has been onboarded and no order has been fulfilled.

  • Staff console

    Not built

    The route exists and is role-gated. Every module inside it is a placeholder.

If this table ever reads better than the product behaves, that is a bug and we want to hear about it.

Read the rest before you decide