Preskocit na obsah
Zpet na stories

Release story

Publikovano 14. 5. 2026

8 min cteni

Wallet-centric access: co mění tohle vydání

Tohle vydání přesouvá přístup k peněžence na správnou produktovou hranici: workspace odemyká hardwarový signer nebo explicitní email ve vaultu, zatímco pohyb Bitcoinu dál vyžaduje multisig politiku a podpisy zařízení.

Tohle vydání není kosmetická úprava. Mění způsob, jakým Asylia rozhoduje, kdo může peněženku vidět a používat.

Doteď se nejjednodušší mentální model stále podobal běžné webové aplikaci: přihlásí se uživatel, aplikace ukáže jeho wallety a self-custody pravidla se řeší hlavně při podpisu. Jako most během vývoje je to použitelné. Není to ale model, kolem kterého má Asylia růst.

Asylia je multisig wallet. Přístup má být ukotvený ve walletu samotném. Account session je pořád nutná, ale nemá se zaměňovat za custody identitu.

Přesně o tom je wallet-centric access.

Product access teď následuje wallet

Supabase Auth session je teď technická browser session: obálka, přes kterou aplikace komunikuje s backendem. Produktový přístup se řeší samostatně přes Asylia access session.

Wallet access se dá odemknout dvěma způsoby:

  • hardwarový signer prokáže kontrolu nad signer identitou, která patří do jednoho nebo více vaultů,
  • email odemkne vaulty, ve kterých je tento normalizovaný email explicitně uvedený v přístupových nastaveních.

Ten rozdíl je důležitý. Signer access session odemkne wallety, kde daný signer participuje. Email access session odemkne wallety, kde byl emailu udělen přístup. V první verzi mají obě metody operátorská práva ve workspace: číst vaulty, spravovat nastavení, připravovat návrhy a odesílat validované PSBT updaty.

Ani jedna metoda ale sama nepohne Bitcoinem. Spend pořád vyžaduje multisig threshold vaultu, validní PSBT a fyzické podpisy hardwarových peněženek. Přístup otevře workspace. Prostředky posouvá až vault policy.

Hardware-first sign-in

Přihlašování teď začíná hardwarovým signerem. Trezor i Ledger umí podepsat jednorázovou Asylia výzvu, Edge verification funkce zkontroluje aktuální browser session, spotřebuje challenge, ověří podpis a vytvoří signer access session, když je signer oprávněný.

Email OTP zůstává k dispozici, ale jeho role je jasnější. Není to univerzální "owner" klíč ke každému walletu, kterého se účet někdy dotkl. Odemyká wallety, které tento email záměrně uvádějí. Email je tak praktický pro recovery, operace a sdílený přístup bez předstírání, že inbox je stejná autorita jako hardwarový signer.

Wallet UI sleduje aktivní metodu přístupu. Email sessions používají širší key registry na /app/keys. Signer sessions dostávají soustředěný /app/key detail aktuálního hardwarového signera včetně walletů, které jsou přes něj viditelné, a blokátorů před destruktivním odstraněním.

Sdílený vault access je explicitní

Nastavení vaultu teď obsahuje email access záznamy. Přidat email znamená, že tahle adresa může odemknout daný vault přes OTP. Revokovat email znamená odstranit tento přístup bez přepisování Bitcoin policy.

Asylia tím získává praktický operátorský model:

  • founder může držet signer access na hardwarovém zařízení,
  • finance operátor může dostat email access pro koordinaci návrhů,
  • ztracený nebo bývalý email se dá revokovat na úrovni vaultu,
  • a každý spend i tak prochází stejnými multisig podpisovými pravidly.

Release přidává také access-scoped profily. Preference jako měna, jazyk a časová zóna patří aktivní produktové identitě: buď email user profilu, nebo signer identity profilu. Workspace tak zůstává konzistentní i tehdy, když člověk přijde různými přístupovými cestami.

Vault creation je méně křehký

Zápisy identity vaultu teď jdou přes omezená RPC místo toho, aby browser skládal víc databázových zápisů s best-effort rollbackem. Vytvoření vaultu, připojení signerů, finalizace descriptorů a audit kontext se commitnou jako jedna invariantní operace.

Tohle je jedna z tichých změn, které jsou nejdůležitější. Multisig wallet nemá vytvářet svou identitu napůl. Když vault existuje, jeho signer set, descriptor state, setup status a access záznamy musí souhlasit.

Dashboard teď rozumí setup-required vaultům jako reálnému stavu, ne jako nepohodlnému přechodnému momentu. Produkt tak umí nedokončené vaulty vrátit do správného setup flow místo toho, aby každou kartu bral jako hotový wallet.

Spend proposals jsou přísnější

Tahle větev zpevňuje také money-moving cestu okolo PSBT proposalů.

Send flow je rozdělený na samostatné configure, sign a review kroky. Refactor není jen kvůli čitelnosti. Amount handling, fee matematika, custom fee interakce, PSBT review, signer status a hardware signing state mají vlastní testovatelné hranice.

Pod UI se při vytvoření proposalu ukládá PSBT draft, recipient summary, fee a change metadata, vybrané input locky a volitelná change reservation v jedné transakci. Aktivní input locky se znovu čtou před coin selection, aby dva taby potichu nepostavily konkurenční proposals na stejném outpointu.

Podepsané PSBT updaty jdou přes proposal-psbt Edge Function. Funkce načte proposal přes RLS-scoped session volajícího, porovná odeslané PSBT s uloženým proposalem, spustí hardened @asylia/btc-core policy, odvodí, jestli je threshold opravdu splněný, a stav posune přes service-role-only RPC.

Policy kontroluje nejdůležitější části:

  • očekávané inputs,
  • recipienta a amount,
  • přesnou change sémantiku,
  • fee ceilings,
  • signer fingerprints,
  • splnění thresholdu,
  • a shodu finální transakce před broadcastem.

No-change spends jsou teď plnohodnotný případ. Když spend přesně vyčerpá vybraný output, proposal neukládá change address a policy vyžaduje, aby PSBT neobsahoval žádný wallet change output. Pokud change existuje, metadata musí být kompletní.

Proposal state je auditovatelný

Release přidává přísnější transaction-state vrstvu nad existující proposal status. Proposals můžou procházet explicitním lifecycle: created, policy checked, signed, finalized, mempool accepted, broadcasted, confirmed a reconciled.

Tyhle přechody se zapisují jako append-only state events. Zrušení draftu nebo pending proposalu je terminální lifecycle rozhodnutí, ne fyzické smazání řádku. Broadcast recording ukládá výsledek místo toho, aby wallet hádal stav z lokálního UI.

Pro self-custody produkt to není byrokracie. Je to rozdíl mezi "obrazovka se změnila" a "umíme vysvětlit, co se stalo".

Live wallet data jsou odolnější

Wallet sync teď používá společnou address-state cache místo toho, aby balance, transactions, receive adresy a send preparation dělaly samostatné discovery walky. Aplikace sleduje receive a change address state, balances, pending sats, počty transakcí, scanned indexes a krátké sync leases, aby víc tabů nemíjelo provider budget na stejný refresh vaultu.

Network fee a fiat-rate data se cachují přes Supabase a do walletu přicházejí přes Realtime. Bitcoin chain-data package má lepší provider normalizaci, fallback handling, cooldowny a rate limiting. Paid Blockstream routing je držený za Edge Functions, takže browser bundle nikdy nedostane upstream credentials.

Výsledkem je klidnější data layer: méně duplicitních scanů, jasnější failure states a kontrolovaná cesta, když jsou veřejní provideři pomalí, rate limited nebo nekonzistentní.

Billing je scoped na wallety

Tahle větev posouvá aktivní billing model blíž k tvaru produktu. Billing enrollment je scoped na vault, ne jen na generický user účet. Vault settings obsahují subscription surface a send flow umí ukázat platform-fee preview jako explicitní proposal output, když se fee aplikuje.

Pravidlo zůstává viditelné: pod free thresholdem neexistuje Asylia fee output. Nad ním je fee explicitní, capped a zkontrolovatelné každým cosignerem předtím, než hardwarová zařízení schválí spend.

Hardware flows mají společný základ

Trezor a Ledger connection flows teď sdílejí společný device-connect wizard. Vendor-specific wrappery si nechávají svoje detaily, ale state machine pro environment checks, connection phases, duplicate handling, retry states, live events a diagnostics je jednotný.

Je to méně duplicitního UI kódu právě na místě, kde duplicita snadno začne bolet. Hardware flows mají být klidné pro uživatele a nudné pro reviewery.

Ledger policy handling dostal další pass. Policies se dají ukládat per vault signer, signing rows zůstávají disabled, dokud potřebná policy není přítomná, a vrácené podpisy se kontrolují vůči očekávanému cosignerovi předtím, než vstoupí do proposalu.

Release gate je záměrně těžší

Branch přidává public audit records, branch database tests, Supabase security checks, production configuration verification, browser gates a přísnější wallet production gates. Test stack je explicitně namapovaný: release/test používá test Supabase projekt a hosty wallet-t.asylia.io, test.asylia.io, design-t.asylia.io a status-t.asylia.io.

Je to důležité, protože tohle vydání mění authorization model. Nestačí, aby UI vypadalo správně na localhostu. RLS policies, service-role RPC grants, Edge Function boundaries, email templates, allowed origins, Vercel host mappings a public audit manifests musí souhlasit předtím, než to půjde do main.

Nejnovější security audit nenašel žádné critical, high ani medium severity issues. Zaznamenal jeden low-severity residual risk okolo rozšířené service-role Edge Function hranice. Riziko je přijaté, protože kontrolované funkce ověřují authentication, session binding, challenge ownership a expiry, vault access, PSBT policy i service-role-only RPC grants předtím, než zapisují citlivý stav.

Co tohle vydání opravdu shipuje

Viditelné produktové změny se pojmenovávají snadno: hardware-first sign-in, vault email access, jasnější key navigation, strukturovanější send flow, live fee a rate data, wallet-scoped billing, silnější Ledger a Trezor flows a klidnější workspace.

Hlubší změna je architektonická. Asylia se posouvá od account-centric app access k wallet-centric custody operations.

Pro Bitcoin multisig wallet je to správný směr. Lidé neoperují wallety jen jako individuální SaaS uživatelé. Operují je jako signeri, cosigneri, finance operátoři, rodiny, foundeři a recovery participants. Produkt to má umět vyjádřit bez oslabení pravidla, že Bitcoin se pohne jen tehdy, když je splněná vault policy.

Tohle vydání dává Asylii tento základ.

Access teď může následovat signera nebo email list ve vaultu. Proposals můžou procházet auditovatelným lifecycle. PSBT se kontrolují před změnami stavu. Vault identity writes jsou omezené. Provider data jsou klidnější. Release gates jsou přísnější.

Je to hodně práce na jednu větev, ale všechno míří k jedné produktové myšlence:

Wallet má být jednodušší na operování bez toho, aby byl jednodušší na špatné použití.