Skip to content

feat(ecosystem): add Crest Deployment Systems -- security audit + crypto data#167

Open
andysalvo wants to merge 1 commit into
coinbase:mainfrom
andysalvo:feat/add-crest-deployment-systems
Open

feat(ecosystem): add Crest Deployment Systems -- security audit + crypto data#167
andysalvo wants to merge 1 commit into
coinbase:mainfrom
andysalvo:feat/add-crest-deployment-systems

Conversation

@andysalvo
Copy link
Copy Markdown

Services

Crest x402 Audit (https://audit.crestsystems.ai)
Smart contract security audit ($1.00), code vulnerability scan ($0.50), and wallet risk profiling ($0.25). AI-powered analysis with OWASP classification and fix recommendations.

Crest x402 Data (https://data.crestsystems.ai)
Crypto market data at $0.01/call. Top 25 prices, token lookups, multi-chain gas oracle, trending tokens, and DeFi TVL per chain.

Details

  • Network: Base mainnet
  • Token: USDC
  • Facilitator: Coinbase CDP
  • Discovery: agent.json, x402.json, llms.txt at each domain

Provider

Crest Deployment Systems LLC -- https://crestsystems.ai

Two x402 services:
- Crest x402 Audit: smart contract audit, code vulnerability scan, wallet risk profiling
- Crest x402 Data: crypto prices, token lookups, gas oracle, trending tokens, DeFi analytics

Both live on Base mainnet, USDC settlement via CDP facilitator.
@cb-heimdall
Copy link
Copy Markdown

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@TateLyman
Copy link
Copy Markdown

Ran a no-payment external pass against the two public Crest surfaces from this listing. No X-PAYMENT, no payment signatures, no API key, and no paid calls.

Repro:

npx --yes x402-surface-check@latest https://data.crestsystems.ai/.well-known/x402 --limit 8 --origin https://data.crestsystems.ai
npx --yes x402-surface-check@latest https://audit.crestsystems.ai/api/openapi.json --limit 8 --origin https://audit.crestsystems.ai

What looks good:

  • Data surface returns five structured x402 402 challenges at /bin/zsh.01-/bin/zsh.05 on Base / eip155:8453.
  • Audit surface returns three structured x402 402 challenges for contract audit, code scan, and wallet profile at .00, /bin/zsh.50, and /bin/zsh.25.
  • Resource URLs are HTTPS and match the public host/path.
  • Data preflight allows X-PAYMENT and PAYMENT-SIGNATURE from the tested origin.

Patch notes before/after merge:

  • P1: Audit preflight and actual 402 responses do not expose browser-readable CORS for the tested origin or payment headers. If audit is server-to-server only, a short note in docs is enough; if browser agents are intended, add Access-Control-Allow-Origin plus payment headers on OPTIONS and actual 402 responses.
  • P2: Both data and audit challenges keep resource.url at challenge level but do not echo it in accept legs. This may be fine for x402 v2, but a client spend map should bind the selected accept leg back to the top-level resource.
  • Polish: https://data.crestsystems.ai/ links to /.well-known/agent.json; that agent doc exposes a useful tools map. Some scanners may not follow that shape yet, so keeping /.well-known/x402 linked prominently helps discovery.

Net: the actual paid surfaces are live and structured. Main remaining question is whether browser-agent CORS is in scope for audit, or intentionally server-to-server.

@andysalvo
Copy link
Copy Markdown
Author

Thanks for the thorough surface check @TateLyman. All three items addressed:

P1 (CORS): Audit surface now returns Access-Control-Allow-Origin, Access-Control-Allow-Headers (including X-PAYMENT and PAYMENT-SIGNATURE), and Access-Control-Expose-Headers on both OPTIONS preflight and actual 402 responses. Browser agents are in scope. Both surfaces are consistent.

P2 (resource_url in accept legs): Noted — this is currently at the challenge level per x402 v2 structure. Will add accept-leg binding if the spec formalizes it.

Polish (x402 discovery): /.well-known/x402 is now prominently linked in the audit root response alongside /.well-known/agent.json.

Repro for the CORS fix:

curl -sI -X POST https://audit.crestsystems.ai/audit/contract -H "Origin: https://example.com" | grep access-control

@TateLyman
Copy link
Copy Markdown

Re-ran the no-payment pass after your patch.

Repro:

npx --yes x402-surface-check@latest https://data.crestsystems.ai/.well-known/x402 --limit 8 --origin https://data.crestsystems.ai
npx --yes x402-surface-check@latest https://audit.crestsystems.ai/api/openapi.json --limit 8 --origin https://audit.crestsystems.ai
curl -i https://audit.crestsystems.ai/

Confirmed fixed:

  • Audit browser preflight now allows X-PAYMENT / PAYMENT-SIGNATURE and exposes payment response headers, matching the data surface.
  • The audit root now advertises discovery links, including /.well-known/x402, /.well-known/agent.json, /api/openapi.json, and /llms.txt.
  • The sampled data and audit paid routes still return structured x402 402 responses before paid work at the expected prices.

Remaining note is the one you already called out: the scanner still flags accept-leg resource binding because it expects each accept leg to repeat the canonical resource URL. If your interpretation is challenge-level resource only until the spec formalizes accept-level binding, documenting that in the provider notes is enough for now.

One optional hardening item: the sampled paid 402 responses still do not advertise Cache-Control; no-store is a safer default for payment negotiation responses.

No payment headers, signatures, API keys, or paid calls were sent.

@andysalvo
Copy link
Copy Markdown
Author

Update: Crest Verify now includes multi-layer verification for x402 services, including conformance checks and signed trust receipts. JCS/RFC 8785 conformance vectors are available in PR x402-foundation#2398. Free verification checks: https://verify.crestsystems.ai. npm: @crestdeploymentsystems/verify

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants