• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 29336359764
87%

Build:
DEFAULT BRANCH: main
Ran 14 Jul 2026 01:26PM UTC
Jobs 9
Files 97
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Jul 2026 01:24PM UTC coverage: 87.901% (+0.6%) from 87.326%
29336359764

push

github

web-flow
feat(auth): add signInWithWeb3 for Web3 wallet authentication (#1590)

## Summary

Adds `signInWithWeb3` support to `gotrue`, wrapping the GoTrue `POST
/token?grant_type=web3` endpoint used for Web3 wallet authentication
(Sign-In with Ethereum and Sign-In with Solana, both derived from
EIP-4361).

- `GoTrueClient.signInWithWeb3({required Web3Chain chain, required
String message, required String signature, String? captchaToken})`
exchanges a signed message for a session, saves it, and emits
`AuthChangeEvent.signedIn`.
- New `Web3Chain` enum (`ethereum`, `solana`).
- Exposed through `supabase` / `supabase_flutter` automatically via the
existing `auth` getter.

Message signing and wallet interaction are delegated to the caller
(using `web3dart`, `walletconnect_dart`, or a Solana wallet library).
This matches the platform-agnostic path in supabase-js:
`window.ethereum` / `window.solana` auto-detection has no Flutter
equivalent, so the SDK does not build the message or auto-detect a
browser wallet.

## Outcome

**implemented** — for `Web3Chain.ethereum` the signature is a hex
string, for `Web3Chain.solana` it is a base64url string, matching the
wire format supabase-js sends.

## Tests

`packages/gotrue/test/web3_auth_test.dart` (mocked, 6 tests, all
passing): Ethereum happy path, Solana happy path, captcha token, bad
signature, expired nonce, and network error.

## Reference

supabase-js / auth-js `GoTrueClient.signInWithWeb3` (`POST
/token?grant_type=web3`).

## Compliance matrix

`auth.sign_in.sign_in_with_web3`: `not_implemented` → `implemented`
(symbols: `GoTrueClient.signInWithWeb3`, `Web3Chain`).

Linear: SDK-836

15 of 16 new or added lines in 1 file covered. (93.75%)

3 existing lines in 2 files now uncovered.

5020 of 5711 relevant lines covered (87.9%)

4.21 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
74.79
0.52% packages/gotrue/lib/src/gotrue_client.dart

Coverage Regressions

Lines Coverage ∆ File
2
93.75
0.89% packages/storage_client/lib/src/storage_client.dart
1
94.17
0.05% packages/storage_client/lib/src/fetch.dart
Jobs
ID Job ID Ran Files Coverage
1 realtime_client - 29336359764.1 14 Jul 2026 01:29PM UTC 11
90.13
GitHub Action Run
2 gotrue - 29336359764.2 14 Jul 2026 01:29PM UTC 28
86.53
GitHub Action Run
3 supabase - 29336359764.3 14 Jul 2026 01:27PM UTC 16
82.61
GitHub Action Run
4 functions_client - 29336359764.4 14 Jul 2026 01:26PM UTC 3
98.81
GitHub Action Run
5 postgrest - 29336359764.5 14 Jul 2026 01:29PM UTC 10
85.33
GitHub Action Run
6 supabase_common - 29336359764.6 14 Jul 2026 01:26PM UTC 10
87.27
GitHub Action Run
7 storage_client - 29336359764.7 14 Jul 2026 01:28PM UTC 8
95.21
GitHub Action Run
8 supabase_flutter - 29336359764.8 14 Jul 2026 01:27PM UTC 10
79.31
GitHub Action Run
9 yet_another_json_isolate - 29336359764.9 14 Jul 2026 01:26PM UTC 1
93.65
GitHub Action Run
Source Files on build 29336359764
  • Tree
  • List 97
  • Changed 5
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29336359764
  • 20a82beb on github
  • Prev Build on main (#29318155135)
  • Next Build on main (#29408971089)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc