Skip to content

fix(fund): drop broken Coinbase Onramp URL builder#15

Merged
vvillait88 merged 1 commit intomainfrom
fix/remove-broken-coinbase-onramp
May 4, 2026
Merged

fix(fund): drop broken Coinbase Onramp URL builder#15
vvillait88 merged 1 commit intomainfrom
fix/remove-broken-coinbase-onramp

Conversation

@vvillait88
Copy link
Copy Markdown
Contributor

Summary

The URL agentscore-pay fund printed for Base + Solana mainnet was broken end-to-end:

  1. Coinbase rejected the legacy URL flow with "Missing or invalid parameters / appId required".
  2. Once an appId is added, the project's "secure initialization" setting still rejects it — Coinbase steers integrators toward server-minted sessionTokens instead.

Stopgap

Drop the auto-onramp link entirely. fund now prints the receive QR + polls balance for every mainnet chain (matching existing Tempo UX). Users send USDC from any source — another wallet, a CEX withdrawal, or any third-party fiat onramp that supports the destination chain.

Tempo testnet's programmatic mint via tempo_fundAddress is unchanged. Base Sepolia + Solana devnet still use the existing faucet command.

Future direction

Stripe Crypto Onramp via a server-minted session endpoint (pending Stripe approval). Same architectural pattern (backend mints sessionToken, CLI opens the hosted URL) applies to both Coinbase Onramp Session Token API and Stripe Crypto Onramp — one server-side onramp-broker endpoint will support both providers when we reach that.

Changes

  • Remove onrampUrl() function from constants.ts
  • Drop onramp_url field from FundResult + CreateResult
  • Update CLI descriptions/hints/examples + agent-guide notes
  • Rewrite README funding section
  • Update internal CLAUDE.md
  • Remove broken onrampUrl tests

Test plan

  • 352/352 vitest pass against synced ed25519-hd-key@2.0.0 (was 356/356; 4 tests removed alongside the deleted onrampUrl function)
  • tsc --noEmit clean
  • bun install produces no diff (lockfile in sync)
  • Mintlify docs paired in agentscore/core#TBD

🤖 Generated with Claude Code

The URL agentscore-pay fund printed for Base + Solana mainnet was
broken end-to-end: Coinbase rejected it with "Missing or invalid
parameters / appId required" on the legacy URL flow, and once an
appId is added, the project's "secure initialization" setting
rejects it again unless the request comes from a server-minted
sessionToken.

Stopgap: drop the auto-onramp link entirely. fund now prints the
receive QR + polls balance for every mainnet chain (matching the
existing Tempo UX). Users send USDC from any source they prefer —
another wallet, a CEX withdrawal, or any third-party fiat onramp
that supports the destination chain.

Tempo testnet's programmatic mint via tempo_fundAddress is unchanged.
Base Sepolia + Solana devnet still use the existing faucet command.

Future direction: Stripe Crypto Onramp via a server-minted session
endpoint (pending Stripe approval). Same architectural pattern —
backend mints sessionToken, CLI opens the hosted URL — applies to
both Coinbase Onramp Session Token API and Stripe Crypto Onramp.

Changes:
- Remove onrampUrl() function from constants.ts
- Drop onramp_url field from FundResult + CreateResult
- Update CLI descriptions/hints/examples + agent-guide notes
- Rewrite README funding section
- Update Mintlify pay-cli + mcp/overview docs
- Update internal CLAUDE.md
- Remove broken onrampUrl tests

Test plan: 352/352 vitest pass (was 356/356; 4 tests removed
alongside the deleted onrampUrl function); tsc --noEmit clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vvillait88 vvillait88 merged commit 0a3f720 into main May 4, 2026
6 checks passed
@vvillait88 vvillait88 deleted the fix/remove-broken-coinbase-onramp branch May 4, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant