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
- 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.
- 01Not run
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.
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
- 02Not run
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.
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"} - 03Not run
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.
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, unprovenSign-up, sign-in and email confirmation are wired to the real database. No member of the public has created an account yet.
Coin ledger
LiveAppend-only, enforced by the database. Balances are derived from entries, never stored as an editable number.
Identity verification (KYC)
Not builtNo provider is integrated. This is required before any purchase can settle, which is why no purchase can settle.
Taking payments
Not builtNo 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 builtThere 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, unprovenThe 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 builtThe 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.