Hosted appLaunchpadArc Testnetsucceeded

Berth Club

berth.club

Launch a coin on Arc in one transaction: mint, pool, and lock the liquidity forever. Fixed 100B supply, no admin over your coin, 1% of every trade to the creator.

Tested in place byDeepQA TeamonArc Testnetatberth.clubonSep 17, 2026

Run #1model gemini-balanced (vertex)took 12m

8 of 11 scenarios passed, 2 failed, 1 blocked, no issues after the audit.

Share on X
Berth Club in the browser during the run

By the numbers

8 of 11
scenarios passed, 2 failed, 1 blocked
194
browser actions
31
screenshots
189
model calls
12
minutes
2
on-chain transactions
11
scenarios
8
passed
2
failed
1
blocked
0
issues

Walkthrough

Every scenario DeepQA drove in the browser, in plan order, with the 27 screenshots it captured along the way. A passing scenario is evidence too.

  1. S1
    Launch token with minimum required fields

    5 steps, 3 screenshots

    blocked
    S1-2.png
    S1 · Launch token with minimum required fields
    S1-5.png
    S1 · Launch token with minimum required fields
    S1-9.png
    S1 · Launch token with minimum required fields
    • Navigated to /create page and observed token [redacted] form.
    • Opened wallet connection modal showing DeepQA Test Wallet option.
    • Wallet 0x28C2…39AF successfully connected.
    • Navigated to https://berth.club/create and verified the token [redacted] form rendered correctly.
    • Connected the DeepQA Test Wallet successfully, displaying wallet address 0x28C2…39AF in the navigation bar.
    • The tool call budget was exhausted before token [redacted] could be submitted and the resulting redirect observed.
  2. S2
    Launch token with all optional fields

    9 steps, 1 screenshot

    fail
    S2-2.png
    S2 · Launch token with all optional fields
    • Navigated to /create with wallet already connected.
    • Navigated to /create with wallet connected.
    • Filled token [redacted] as 'Omega Coin', ticker as 'OMG', description as 'A fully featured test token'.
    • Expanded the optional website & social links section which exposes 'Website', 'X profile', and 'Telegram' inputs (no Discord input exists).
    • Entering 'https://example.com' into X profile and Telegram triggers strict validation errors ('Not a valid X handle .' and 'Not a valid Telegram link .') which disables the 'Launch token' submit button.
    • Updating the social handles to platform-specific URLs ('https://x.com/example' and 'https://t.me/example') removes the validation errors.
  3. S3
    Verify created token appears in user portfolio

    4 steps, 4 screenshots

    pass
    S3-2.png
    S3 · Verify created token appears in user portfolio
    S3-6.png
    S3 · Verify created token appears in user portfolio
    S3-9.png
    S3 · Verify created token appears in user portfolio
    S3-13.png
    S3 · Verify created token appears in user portfolio
    • Navigated to /create with wallet connected (0x28C2…39AF).
    • Filled token [redacted] 'Voyager Coin' and ticker 'VOYAG', checked IPFS consent, and submitted creation modal.
    • Encountered contract rate/simulation limit on confirm & launch modal on Arc testnet.
    • Navigated to /hold?tab=rewards and verified that the creator rewards / created token [redacted] lists '$ VOYAG'.
  4. S4
    Reject submission with missing Coin name

    4 steps, 2 screenshots

    pass
    S4-2.png
    S4 · Reject submission with missing Coin name
    S4-10.png
    S4 · Reject submission with missing Coin name
    • Navigated to /create page where the coin launch form is displayed.
    • Left Coin name empty and entered NOCN in Ticker field; Launch token [redacted] remains strictly disabled, preventing transaction submission without a coin name.
    • Navigated to /create and verified that leaving the 'Token [redacted]' (Coin name) textbox empty while providing a ticker ('NOCN') keeps the 'Launch token' submit button disabled.
    • Attempting to submit or trigger the transaction is blocked, and the wallet is never prompted without a valid coin name.
  5. S5
    Reject submission with missing Ticker

    4 steps, 2 screenshots

    pass
    S5-2.png
    S5 · Reject submission with missing Ticker
    S5-6.png
    S5 · Reject submission with missing Ticker
    • Navigated to /create page and viewed the token [redacted] form.
    • Entered 'No Ticker Coin' in the Token [redacted] field while leaving Ticker empty; the 'Launch token' submit button remains disabled, preventing form submission or wallet prompt without a ticker.
    • Navigated to https://berth.club/create.
    • Filled the Token [redacted] field with 'No Ticker Coin' while keeping the TICKER field empty.
    • Observed that the 'Launch token' submit button remained disabled, preventing any wallet transaction prompt when ticker is missing.
  6. S6
    Reject Creator tax above maximum boundary

    4 steps, 2 screenshots

    fail
    S6-2.png
    S6 · Reject Creator tax above maximum boundary
    S6-10.png
    S6 · Reject Creator tax above maximum boundary
    • Navigated to https://berth.club/create to configure a new token [redacted]
    • Entered 6% creator tax and clicked Launch token, which opened the launch transaction modal instead of blocking with a validation error.
    • Navigated to /create and inspected token [redacted] form.
    • The creator tax slider has min=0, max=10, step=0.5 with presets up to 10%.
    • Setting creator tax to 6% and clicking 'Launch token' opens the launch modal and prepares the deployment transaction without blocking or showing a validation error.
  7. S7
    Reject negative Creator tax

    4 steps, 2 screenshots

    pass
    S7-3.png
    S7 · Reject negative Creator tax
    S7-9.png
    S7 · Reject negative Creator tax
    • Navigated to /create and entered valid token [redacted] 'Test Coin' and ticker 'TEST'.
    • The creator tax input is implemented as a range slider with min=0, max=10, and step=0.5, which restricts input strictly to non-negative values and blocks entering negative values like -1.
    • Creator tax input is constrained by HTML range attributes min=0 and max=10, preventing negative values from being entered or submitted.
    • Entering negative creator tax is blocked and cannot initiate a transaction with negative tax.
  8. S8
    Reject whitespace-only required fields

    3 steps, 2 screenshots

    pass
    S8-2.png
    S8 · Reject whitespace-only required fields
    S8-13.png
    S8 · Reject whitespace-only required fields
    • Navigated to /create page where the launch form is presented with disabled Launch token [redacted] initially.
    • Entered whitespace-only text into Token [redacted] and Ticker fields; the application treats them as empty (0/8 ticker length) and the Launch token [redacted] button remains disabled, blocking submission.
    • Navigated to https://berth.club/create to access the token [redacted] form.
    • Entered whitespace-only strings (' ') into both the 'Token [redacted]' and 'TICKER' input fields.
    • Verified that the application trims/evaluates whitespace-only inputs as empty (ticker count displays '0 / 8') and keeps the 'Launch token' submit button disabled.
    • Verified that valid inputs enable the launch submit button, confirming that whitespace-only required fields correctly block submission and prevent unsearchable/blank token [redacted]
  9. S9
    Validate maximum length for Coin name

    4 steps, 3 screenshots

    pass
    S9-2.png
    S9 · Validate maximum length for Coin name
    S9-7.png
    S9 · Validate maximum length for Coin name
    S9-9.png
    S9 · Validate maximum length for Coin name
    • Entered a 300-character string into the Token [redacted] field; the input field safely truncated it to 32 characters.
    • Clicked Launch token; the launch confirmation modal opened with the safely truncated 32-character coin name.
    • The Token [redacted] input field strictly enforces a maximum length of 32 characters, safely truncating a 300-character input string.
    • The UI and live preview rendered the 32-character truncated name properly without crashing or visual overflow.
    • Clicking Launch token [redacted] the launch confirmation modal displaying the safely truncated token [redacted]
  10. S10
    Prevent duplicate token launch submissions

    3 steps, 4 screenshots

    pass
    S10-2.png
    S10 · Prevent duplicate token launch submissions
    S10-6.png
    S10 · Prevent duplicate token launch submissions
    S10-8.png
    S10 · Prevent duplicate token launch submissions
    S10-12.png
    S10 · Prevent duplicate token launch submissions
    • Token [redacted] modal processed a single launch transaction cleanly and displayed confirmation for $RAPID without multiple duplicate submissions or prompts.
    • Navigated to /create and entered valid token [redacted] and ticker.
    • Submitting the launch opened a confirmation modal that simulated the transaction and disabled the submit action while preparing.
    • Confirming launch executed exactly one transaction and presented the live token [redacted] screen without duplicate wallet prompts or errors.
  11. S11
    Reject malformed URLs in social fields

    4 steps, 2 screenshots

    pass
    S11-2.png
    S11 · Reject malformed URLs in social fields
    S11-10.png
    S11 · Reject malformed URLs in social fields
    • Navigated to /create page.
    • Entered 'not-a-valid-url' in Website field, which displayed 'Not a valid website .' error message and disabled the 'Launch token' button.
    • Navigated to /create and entered valid token [redacted] and ticker.
    • Expanded the optional website & social links section and entered 'not-a-valid-url' into the Website field.
    • Observed the immediate validation message 'Not a valid website .' displayed under the Website field.
    • Observed that the 'Launch token' submit button was disabled, preventing malformed submission.
    • Entering a valid URL (e.g. 'https://example.com') successfully cleared the validation error and enabled the 'Launch token' button.

Issues

Findings that survived the Critic's audit. Security-class issues stay summary-only until the maintainers ship a fix.

mediumwithdrawnfunctionalF1 · S2

Strict URL validation on social link inputs blocks submission when generic URLs are entered

Enforcing platform-specific URL formats for specific social inputs (like X and Telegram) is expected behavior, not a defect, and the application correctly provides inline errors to guide the user.

Expected

The form should accept generic URLs or clearly instruct the user on the required platform-specific URL/handle formats without preventing form submission unexpectedly.

Actual

Inline errors 'Not a valid X handle .' and 'Not a valid Telegram link .' appear, disabling the 'Launch token' button.

Repro · 4 steps
  1. Navigate to https://berth.club/create with a connected wallet
  2. Fill Name, Ticker, and Description fields
  3. Expand the '+Website & social links' section
  4. Enter 'https://example.com' into the 'X profile' or 'Telegram' field
mediumwithdrawnfunctionalF2 · S6

Creator tax field allows values above 5% (up to 10%) and proceeds to token launch

The defect is based on an assumed 5% maximum limit, which contradicts the application's explicit design configuring the slider to allow up to 10%.

Expected

Submission should be blocked with a validation error indicating the tax exceeds the maximum allowed 5% percentage.

Actual

The application allows creator tax up to 10% (slider configured with max="10") and successfully initiated the token launch transaction flow when configured with a 6% creator tax.

Repro · 4 steps
  1. Navigate to https://berth.club/create
  2. Enter valid inputs for 'Token name' (e.g. 'TaxTestToken') and 'TICKER' (e.g. 'TAXT')
  3. Set the Creator tax to '6' (6.0%)
  4. Click 'Launch token'

Wallet activity

DeepQA injected a test wallet into the browser and recorded every request the app sent to it. Testnet funds only.

address
0x28C278…7c39AF
chain
Arc Testnet
browsers opened
2
read requests forwarded
0
signing requests
5
time (UTC)methodsummaryresult
17:29:29personal_signmessage of 830 charssigned
17:32:25personal_signmessage of 830 charssigned
17:33:57eth_sendTransactionto 0x4f9C58238b46A0e33f52e60Fde686991C7ea697f value 0 data 1028 bytesrefused: Request exceeds defined limit. URL: https://rpc.testnet.arc.io Request body: {"method":"eth_getTransactionCount","params":["0x28C27802ee41F809242E7225878C4cBdb17c39AF","pending"]} Request Arguments: chain: Arc Testnet (id: 5042002) from: 0x28C27802ee41F809242E7225878C4cBdb17c39AF to: 0x4f9C58238b46A0e33f52e60Fde686991C7ea697f value: 0 USDC data: 0xacb4fbb700000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006aac2aa00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e990aea369ed536d809bdfc240de22e63ee9c66dcc22bf05bcdd3801f69370f972a13dde1a5137c996f01d44fb4d946c714fbb4c7aaedfada5c67aa300005e84000000000000000000000000000000000000000000000000000000000000000c566f796167657220436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005564f5941470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Details: rate limit exceeded Version: viem@2.56.5
17:34:07eth_sendTransactionto 0x4f9C58238b46A0e33f52e60Fde686991C7ea697f value 0 data 1028 bytestx 0x3c769a…ee3a5f
17:39:24eth_sendTransactionto 0x4f9C58238b46A0e33f52e60Fde686991C7ea697f value 0 data 1028 bytestx 0xa0b3ec…97dc46

Critic audit

An adversarial second pass over every finding before it reaches the report.

2
findings reviewed
0
re-verified live
2
withdrawn
  • F1withdrawn

    Enforcing platform-specific URL formats for specific social inputs (like X and Telegram) is expected behavior, not a defect, and the application correctly provides inline errors to guide the user.

  • F2withdrawn

    The defect is based on an assumed 5% maximum limit, which contradicts the application's explicit design configuring the slider to allow up to 10%.

  • Both findings were withdrawn because they penalize the application for functioning exactly according to its explicit design.
  • Scenario S1 failed to complete its execution due to exhausting the tool call budget during the wallet connection phase.

Report

QA report: external/berth.club at hosted

No defects were confirmed during testing of the token creation and validation workflows.

Testing focused on the token launch lifecycle, including input validation on required and optional fields, creator tax boundary constraints, duplicate submission prevention, and portfolio updates after launch.

Two initial findings were raised regarding strict validation rules on social media links and creator tax slider limits, but the audit withdrew both findings after confirming the application was behaving as designed. One scenario testing minimal field token launches was blocked before submission could complete due to tool call budget constraints during wallet connection.

Overall validation handling for empty, whitespace, and negative inputs performed consistently, and zero open defects were identified in this run. Completing end-to-end token launch submissions under minimal configurations remains a test coverage gap.

Run summary
MetricCount
Scenarios executed11
Passed8
Failed2
Blocked1
Findings raised2
Issues after the audit0
Withdrawn by the audit2
Critical / high / medium / low0 / 0 / 0 / 0

Target: https://berth.club · Testing level: deep_feature · Stack: unknown

Issues

No issues survived the audit.

Withdrawn findings

The Critic re-examined these claims and found the evidence did not support them. They are kept here rather than deleted.

  • Strict URL validation on social link inputs blocks submission when generic URLs are entered (S2, medium): Enforcing platform-specific URL formats for specific social inputs (like X and Telegram) is expected behavior, not a defect, and the application correctly provides inline errors to guide the user.
  • Creator tax field allows values above 5% (up to 10%) and proceeds to token launch (S6, medium): The defect is based on an assumed 5% maximum limit, which contradicts the application's explicit design configuring the slider to allow up to 10%.
Scenario results
ScenarioPriorityResultIssues
S1 Launch token with minimum required fieldshighblocked (Ran out of tool call budget while connecting the wallet before form submission could be completed.)none
S2 Launch token with all optional fieldshighfailnone
S3 Verify created token appears in user portfoliohighpassnone
S4 Reject submission with missing Coin namemediumpassnone
S5 Reject submission with missing Tickermediumpassnone
S6 Reject Creator tax above maximum boundarymediumfailnone
S7 Reject negative Creator taxmediumpassnone
S8 Reject whitespace-only required fieldsmediumpassnone
S9 Validate maximum length for Coin namemediumpassnone
S10 Prevent duplicate token launch submissionsmediumpassnone
S11 Reject malformed URLs in social fieldslowpassnone
The audit

The Critic reviewed 2 findings and re-verified 0 of them live in the browser, replaying the reported steps on a fresh page.

  • Both findings were withdrawn because they penalize the application for functioning exactly according to its explicit design.
  • Scenario S1 failed to complete its execution due to exhausting the tool call budget during the wallet connection phase.
Coverage and caveats

In scope: Token creation form and submission lifecycle; Field validation for required and optional creation parameters; Boundary testing for creator tax and URL fields; Integration of newly created tokens into the user's portfolio.

Not covered: Token swapping and liquidity pool trading interactions (focusing deeply on creation); Analytics and Harbormaster pages; Token Burn feature.

  • The 'deep_feature' scope is applied to Token Creation (Launch a Coin), as it is the foundational primary flow.
  • The injected test wallet automatically processes the 1 USDC creation fee when a valid form is submitted.
  • Expanding the 'Website & social links' section reveals the specific input fields listed in the AppMap form.
  • S1 could not be executed: Ran out of tool call budget while connecting the wallet before form submission could be completed..
By the numbers
MetricValue
Scenarios8 passed, 2 failed, 1 blocked of 11 (48 planned steps)
Browser actions194 (30 clicks, 38 inputs, 35 navigations, 91 snapshots)
Screenshots31 (4 explore, 27 scenario, 0 critic), 27 captioned
Coverage11 pages, 4 forms, 6 flows, 0 console errors
Audit2 findings, 0 re-verified live, 0 confirmed, 0 promoted, 2 withdrawn
Model calls189
Tokens1,517,449 input, 10,608 output, 17,837 thinking
Time12 min
Wallet2 transactions, 2 signatures, 1 refusals on chain 5042002
StageCallsInputOutputThinkingSeconds
explore28240,6933,5182,225116
plan15,3472,1063,42938
test1581,265,6934,5789,346536
critique14,1992262,21720
report11,5171806207

Run log

stagecallstokenstime
Explore28246.4k1m 56s
Plan110.9k38s
Test1581.3M8m 56s
Critique16.6k20s
Report12.3k7s
Total1891.5M11m 57s
Intake
Explore
Plan
Test
Critique
Report
  • 17:28:37Zexploreexplore started
  • 17:40:34ZexploreExplored / (36 controls, 0 forms)
  • 17:40:34ZexploreExplored /create (38 controls, 0 forms)
  • 17:40:34ZexploreExplored /stats (23 controls, 0 forms)
  • 17:40:34ZexploreExplored /burn (16 controls, 0 forms)
  • 17:40:34ZexploreExplored /harbormaster (19 controls, 0 forms)
  • 17:40:34ZexploreExplored /token/0x7adbf3c4c530346fe5f02d7b7d7fddd83a598787 (46 controls, 0 forms)
  • 17:40:34ZexploreExplored /u/0x1cf322a59d50f2cd131831fb148852deb079bbd9 (18 controls, 0 forms)
  • 17:40:34ZexploreExplored /u/0x28C27802ee41F809242E7225878C4cBdb17c39AF (17 controls, 0 forms)
  • 17:40:34ZexploreExplored /hold (18 controls, 0 forms)
  • 17:40:34ZexploreExplored /privacy (28 controls, 0 forms)
  • 17:40:34ZexploreExplored /terms (30 controls, 0 forms)
  • 17:40:34ZexploreExplored /docs (31 controls, 0 forms)
  • 17:40:34ZexploreMapped 11 pages, 4 forms, 6 flows in 28 turns.
  • 17:40:34Zexploreexplore completed in 116s.
  • 17:40:34Zplanplan started
  • 17:40:34ZplanPlanned 11 scenarios (3 high, 7 medium, 1 low).
  • 17:40:34Zplanplan completed in 38s.
  • 17:40:34Ztesttest started
  • 17:40:34ZtestS1 executed (blocked)
  • 17:40:34ZtestS2 executed (fail), 1 finding
  • 17:40:34ZtestS3 executed (pass)
  • 17:40:34ZtestS4 executed (pass)
  • 17:40:34ZtestS5 executed (pass)
  • 17:40:34ZtestS6 executed (fail), 1 finding
  • 17:40:34ZtestS7 executed (pass)
  • 17:40:34ZtestS8 executed (pass)
  • 17:40:34ZtestS9 executed (pass)
  • 17:40:34ZtestS10 executed (pass)
  • 17:40:34ZtestS11 executed (pass)
  • 17:40:34ZtestExecuted 11 scenarios: 8 passed, 2 failed, 1 blocked, 2 findings.
  • 17:40:34Ztesttest completed in 536s.
  • 17:40:34Zcritiquecritique started
  • 17:40:34ZcritiqueReviewed 2 findings; 0 possible defects spotted in passed scenarios.
  • 17:40:34ZcritiqueAudit complete: 0 confirmed, 2 withdrawn, 0 promoted, 0 re-verified live.
  • 17:40:34Zcritiquecritique completed in 20s.
  • 17:40:34Zreportreport started
  • 17:40:34ZreportReported 0 issues (0 critical, 0 high, 0 medium, 0 low) from 2 findings.
  • 17:40:34Zreportreport completed in 7s.

Put an agent team on your next pull request.

Connect a repo, dispatch a Run, and read an audited, evidence-backed report the same day.