Skip to content

Add P2P quote destinations - #741

Open
DhruvPareek wants to merge 1 commit into
mainfrom
dp/grid-p2p-quote-destinations
Open

Add P2P quote destinations#741
DhruvPareek wants to merge 1 commit into
mainfrom
dp/grid-p2p-quote-destinations

Conversation

@DhruvPareek

@DhruvPareek DhruvPareek commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Reason

Global Account Embedded Wallets need a public, signed quote flow for sending USDB to another managed wallet or directly to a Spark address. Today the quote API only exposes account and UMA destinations, which prevents callers from identifying another wallet by customer ID or using a raw Spark address.

Overview

  • Add CUSTOMER and SPARK_ADDRESS quote destination variants.
  • Add a SPARK_ADDRESS transaction destination so direct transfers retain their destination in transaction responses.
  • Expose the settled Spark transaction through onChainTransaction. Grid models Spark as a decentralized blockchain network via CryptoNetwork.SPARK, so transactionHash is the Spark transaction hash and network is SPARK.
  • Document that customer destinations resolve within the authenticated platform to an Embedded Wallet in the source currency.
  • Document the existing quote → stamp payload → execute flow; immediatelyExecute remains unsupported for Embedded Wallet sources because the wallet owner must sign the generated payload.
  • Add Global Accounts guide examples for account, customer, and raw Spark-address destinations.

The Sparkcore implementation and generated client updates will land separately. Existing ACCOUNT destinations remain the canonical form for direct internal-account transfers.

Test Plan

  • npm run lint:openapi
  • make build
  • make lint

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
grid-flow-builder Ignored Ignored Preview Aug 1, 2026 12:07am
grid-wallet-demo Ignored Ignored Preview Aug 1, 2026 12:07am

Request Review

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions Bot added the breaking-change Introduces a breaking change to the OpenAPI spec label Jul 24, 2026
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

⚠️ Breaking OpenAPI changes detected

oasdiff reports 639 error / 519 warning changes to openapi.yaml.
This PR will need approval from an API reviewer before merge.

Errors (639)

  • GET /agents/approvals — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the data/items/quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/approvals — added #/components/schemas/SparkAddressTransactionDestination to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/approvals — added #/components/schemas/SparkAddressTransactionDestination to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the data/items/quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions — added #/components/schemas/SparkAddressTransactionDestination to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions — added #/components/schemas/SparkAddressTransactionDestination to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions/{actionId} — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions/{actionId} — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/actions/{actionId} — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #10: EUR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #11: GBP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #12: GHS Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #13: GTQ Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #14: HKD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #15: HTG Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #16: IDR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #17: INR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #18: JMD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #19: KES Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #1: AED Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #20: MWK Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #21: MXN Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #22: MYR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #23: NGN Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #24: PHP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #25: PKR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #26: RWF Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #27: SGD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #28: SLV Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #29: THB Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #2: BDT Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #30: TZS Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #31: UGX Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #32: USD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #33: VND Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #34: XAF Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #35: XOF Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #36: ZAR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #37: ZMW Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #38: SWIFT Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #39: Base Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #3: BRL Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #40: Ethereum L1 Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #41: Lightning]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #42: Polygon Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #44: Solana Wallet -> subschema #43: Solana Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #45: Spark Wallet -> subschema #44: Spark Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #46: Tron Wallet -> subschema #45: Tron Wallet]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #4: BWP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #5: CAD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #6: CNY Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #7: COP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #8: DKK Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #9: EGP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /agents/me/external-accounts — removed #/components/schemas/PlasmaWalletExternalAccountInfo from the allOf[subschema #1]/accountInfo request property oneOf list [request-property-one-of-removed].
  • POST /agents/me/quotes — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • GET /agents/me/quotes/{quoteId} — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/me/quotes/{quoteId}/execute — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/me/quotes/{quoteId}/execute — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/me/quotes/{quoteId}/execute — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/transactions — added #/components/schemas/SparkAddressTransactionDestination to the data/items/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/transactions — added #/components/schemas/SparkAddressTransactionDestination to the data/items/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/transactions/{transactionId} — added #/components/schemas/SparkAddressTransactionDestination to the oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /agents/me/transactions/{transactionId} — added #/components/schemas/SparkAddressTransactionDestination to the oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/me/transfer-in — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/me/transfer-in — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/me/transfer-in — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/me/transfer-out — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/me/transfer-out — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/me/transfer-out — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 201 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/approve — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/approve — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/approve — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/reject — added #/components/schemas/CustomerDestination, #/components/schemas/SparkAddressDestination to the quote/allOf[#/components/schemas/Quote]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/reject — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • POST /agents/{agentId}/actions/{actionId}/reject — added #/components/schemas/SparkAddressTransactionDestination to the transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination response property oneOf list for the response status 200 [response-property-one-of-added].
  • GET /config — the feeConfigs/items/fixedFee response's property type/format changed from integer/int64 to object/`` for status 200 [response-property-type-changed].
  • PATCH /config — added the new required request property feeConfigs/items/fixedFee/amount [new-required-request-property].
  • PATCH /config — added the new required request property feeConfigs/items/fixedFee/currency [new-required-request-property].
  • PATCH /config — the feeConfigs/items/fixedFee request property type/format changed from integer/int64 to object/`` [request-property-type-changed].
  • PATCH /config — the feeConfigs/items/fixedFee response's property type/format changed from integer/int64 to object/`` for status 200 [response-property-type-changed].
  • GET /customers — the data/items/oneOf[subschema #1: Individual Customer]/allOf[#/components/schemas/IndividualCustomerFields]/ response's property type/format changed from / to object/`` for status 200 [response-property-type-changed].
  • POST /customers — added the new required request property oneOf[subschema #1: Individual Customer Create Request]/allOf[#/components/schemas/IndividualCustomerFields]/customerType [new-required-request-property].
  • POST /customers — removed the enum value CHARITY of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[#/components/schemas/BusinessCustomerFields]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value CHARITY of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[subschema #3]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value PRIVATE_FOUNDATION of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[#/components/schemas/BusinessCustomerFields]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value PRIVATE_FOUNDATION of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[subschema #3]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value PUBLICLY_LISTED_COMPANY of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[#/components/schemas/BusinessCustomerFields]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value PUBLICLY_LISTED_COMPANY of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[subschema #3]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value TRUST of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[#/components/schemas/BusinessCustomerFields]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — removed the enum value TRUST of the request property oneOf[subschema #2: Business Customer Create Request]/allOf[subschema #3]/businessInfo/entityType [request-property-enum-value-removed].
  • POST /customers — the oneOf[subschema #1: Individual Customer Create Request]/allOf[#/components/schemas/IndividualCustomerFields]/ request property type/format changed from / to object/`` [request-property-type-changed].
  • POST /customers — the oneOf[subschema #1: Individual Customer]/allOf[#/components/schemas/IndividualCustomerFields]/ response's property type/format changed from / to object/`` for status 201 [response-property-type-changed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #10: EUR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #11: GBP Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #12: GHS Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #13: GTQ Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #14: HKD Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #15: HTG Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • POST /customers/external-accounts — removed the enum value PLASMA_WALLET of the request property allOf[subschema #1]/accountInfo/oneOf[subschema #16: IDR Account]/allOf[#/components/schemas/BaseExternalAccountInfo]/accountType [request-property-enum-value-removed].
  • …and 539 more errors.

Warnings (519)

Show sample
  • GET /agents — removed the optional property details/errors from the response with the 400 status [response-optional-property-removed].
  • POST /agents — removed the optional property details/errors from the response with the 400 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankAccountType from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankName from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/fiToFiInformation from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/intermediaryBankName from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/intermediaryRoutingNumber from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankAccountType from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankName from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/fiToFiInformation from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/intermediaryBankName from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/intermediaryRoutingNumber from the response with the 200 status [response-optional-property-removed].
  • GET /agents/approvals — removed the optional property details/errors from the response with the 400 status [response-optional-property-removed].
  • GET /agents/approvals — added the new CUSTOMER enum value to the data/items/quote/allOf[#/components/schemas/Quote]/destination/oneOf[subschema #1: Account]/allOf[#/components/schemas/BaseDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new CUSTOMER enum value to the data/items/quote/allOf[#/components/schemas/Quote]/destination/oneOf[subschema #2: UMA Address -> subschema #4: UMA Address]/allOf[#/components/schemas/BaseDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/quote/allOf[#/components/schemas/Quote]/destination/oneOf[subschema #1: Account]/allOf[#/components/schemas/BaseDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/quote/allOf[#/components/schemas/Quote]/destination/oneOf[subschema #2: UMA Address -> subschema #4: UMA Address]/allOf[#/components/schemas/BaseDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination/oneOf[subschema #1: Account Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #1: Incoming Transaction]/allOf[#/components/schemas/Transaction]/destination/oneOf[subschema #2: UMA Address Destination -> subschema #3: UMA Address Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination/oneOf[subschema #1: Account Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • GET /agents/approvals — added the new SPARK_ADDRESS enum value to the data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[#/components/schemas/Transaction]/destination/oneOf[subschema #2: UMA Address Destination -> subschema #3: UMA Address Destination]/allOf[#/components/schemas/BaseTransactionDestination]/destinationType response property for the response status 200 [response-property-enum-value-added]. Adding new enum values to response could be unexpected for clients, use x-extensible-enum instead.
  • POST /agents/device-codes/{code}/redeem — removed the optional property details/errors from the response with the 400 status [response-optional-property-removed].
  • GET /agents/me/actions — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankAccountType from the response with the 200 status [response-optional-property-removed].
  • GET /agents/me/actions — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/bankName from the response with the 200 status [response-optional-property-removed].
  • GET /agents/me/actions — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[#/components/schemas/UsdAccountInfoBase]/fiToFiInformation from the response with the 200 status [response-optional-property-removed].
  • …and 494 more warnings.

Detected by oasdiff. Full report: job summary or the oasdiff-report artifact.

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

This PR will update the grid SDKs with the following commit messages.

cli

fix(types): correct destination parameter type in quotes methods

go

fix(types): add proper union types for destination in quotes/transactions/webhooks

kotlin

feat(api): add customer/spark address destination variants to quotes and transactions

openapi

feat(api): add CUSTOMER and SPARK_ADDRESS destination types to quotes and transactions

php

fix(types): type quote/transaction destination fields, add Customer/SparkAddress/Destination models

python

fix(types): add destination types, type destination fields in quote/transaction models

ruby

fix(types): correct destination types in quotes and transactions

typescript

feat(api): add CUSTOMER/SPARK_ADDRESS destinations to quotes, update transaction types

Edit this comment to update them. They will appear in their respective SDK's changelogs.

grid-typescript studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅build ✅lint ❗test ✅

npm install https://pkg.stainless.com/s/grid-typescript/ed3d884faffd43aba3f8a4aaffdf68d995edac29/dist.tar.gz
New diagnostics (2 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
💡 OAS/InvalidUnionExample: Could not find matching variant for the given example `{"destinationType":"ACCOUNT","accountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"}`
grid-openapi studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ⚠️

New diagnostics (1 note)
💡 OAS/InvalidUnionExample: Could not find matching variant for the given example `{"destinationType":"ACCOUNT","accountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"}`
grid-ruby studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅build ✅lint ✅test ✅

New diagnostics (1 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
grid-go studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@06988820174357cd285d46292c713ffafe3689cb
New diagnostics (5 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
grid-kotlin studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ⚠️build ✅lint ✅test ❗

New diagnostics (5 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
grid-python studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/9d4f95971a95bcc09660f88f4a4556bef8244f1c/grid-0.0.1-py3-none-any.whl
New diagnostics (1 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
grid-php studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅lint ✅test ✅

New diagnostics (5 note)
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.
grid-cli studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ⚠️build ❗lint ❗test ❗

New diagnostics (1 note)
💡 ReadmeExample/InvalidParameter: Value provided for parameter `destination` doesn't match its schema.

This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-08-01 00:12:30 UTC

@mintlify

mintlify Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Grid 🟢 Ready View Preview Jul 24, 2026, 10:54 PM

@DhruvPareek
DhruvPareek marked this pull request as ready for review July 24, 2026 23:19
@greptile-apps

greptile-apps Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR extends the Grid quote API with two new destination variants — CUSTOMER (resolves to the recipient's Embedded Wallet account in the source currency) and SPARK_ADDRESS (direct off-chain transfer to any compatible Spark address) — and adds a matching SPARK_ADDRESS transaction destination so settled transfers retain their destination in responses.

  • New schemas: CustomerDestination and SparkAddressDestination added to the quote oneOf, and SparkAddressTransactionDestination added to the transaction oneOf; all discriminator mappings and enum values in DestinationType / TransactionDestinationType are updated consistently.
  • Endpoint docs: The POST /quotes description and request examples are updated to cover all three new flows, and the immediatelyExecute restriction for Embedded Wallet sources is explicitly called out.
  • Guide: A new "Send to another Global Account or Spark address" section in the Global Accounts walkthrough explains the three destination options and shows a complete curl example for the CUSTOMER case.

Confidence Score: 4/5

Safe to merge — all changes are additive OpenAPI schema and documentation additions with no breaking changes to existing endpoints.

The new destination schemas are well-formed and the discriminator mappings, enum additions, and bundled files are all self-consistent. The one thing worth a second look is SparkAddressTransactionDestination reusing the OnChainTransaction schema (with fields described as 'on-chain transaction hash' and 'blockchain network') for a Spark off-chain transfer — the naming creates a semantic mismatch that could trip up SDK consumers reading the field-level docs. The walkthrough also only demos one of the three advertised destination variants.

Files Needing Attention: openapi/components/schemas/transactions/SparkAddressTransactionDestination.yaml — reuse of the OnChainTransaction schema for a Spark (off-chain) destination may need a clarifying note or dedicated schema.

Important Files Changed

Filename Overview
openapi/components/schemas/quotes/CustomerDestination.yaml New schema for CUSTOMER quote destination; structure, discriminator, and description are correct and consistent with existing destination schemas.
openapi/components/schemas/quotes/SparkAddressDestination.yaml New schema for SPARK_ADDRESS quote destination; required fields, discriminator mapping, and constraint notes are consistent with the PR intent.
openapi/components/schemas/transactions/SparkAddressTransactionDestination.yaml New transaction response schema for SPARK_ADDRESS; reuses the OnChainTransaction schema whose child fields are described in on-chain terms that do not cleanly map to off-chain Spark transfers.
openapi/components/schemas/quotes/QuoteRequest.yaml Adds a sibling description to the destination $ref; valid in OpenAPI 3.1.0 (JSON Schema 2020-12 allows $ref siblings) and rendered correctly by Redocly.
openapi/paths/quotes/quotes.yaml Endpoint description and request examples updated to cover all three new destination types; examples are realistic and consistent with schema definitions.
mintlify/snippets/global-accounts/walkthrough.mdx Adds a walkthrough section for P2P transfers; describes three destination variants but only provides a curl example for CUSTOMER, leaving SPARK_ADDRESS without a prose-level demonstration.
mintlify/global-accounts/index.mdx Minor copy update to feature card description to include Global Accounts and Spark addresses; change is accurate and consistent with the new capabilities.
mintlify/openapi.yaml Generated bundle updated to match all source schema additions; mirrors openapi.yaml with no divergence.
openapi.yaml Generated root bundle correctly reflects all new schemas, discriminator mappings, and endpoint description updates from the source openapi/ directory.

Sequence Diagram

sequenceDiagram
    participant Client
    participant GridAPI
    participant Spark

    Note over Client,GridAPI: Embedded Wallet → Customer or Spark Address flow

    Client->>GridAPI: "POST /quotes {source: ACCOUNT (EmbeddedWallet), destination: CUSTOMER | SPARK_ADDRESS}"
    GridAPI-->>Client: "Quote {payloadToSign, quoteId}"

    Note over Client: Wallet owner stamps payloadToSign (immediatelyExecute not supported)

    Client->>GridAPI: "POST /quotes/{quoteId}/execute (Grid-Wallet-Signature header)"
    GridAPI->>Spark: Initiate Spark token transfer
    Spark-->>GridAPI: Transfer settled
    GridAPI-->>Client: "Transaction {destination: ACCOUNT | SPARK_ADDRESS}"

    Note over GridAPI: CUSTOMER destination resolves to recipient Embedded Wallet (ACCOUNT) in transaction response
Loading

Comments Outside Diff (1)

  1. mintlify/snippets/global-accounts/walkthrough.mdx, line 219-249 (link)

    P2 Walkthrough only shows CUSTOMER example for three documented options

    The section text lists three destination variants (ACCOUNT, CUSTOMER, SPARK_ADDRESS) and notes that SPARK_ADDRESS can reach wallets outside the caller's platform, which is meaningfully different from the customer example. The curl block only demonstrates CUSTOMER. A developer integrating SPARK_ADDRESS would have to find the example in the API reference. Consider either adding a second code block for SPARK_ADDRESS, or using a <CodeGroup> to show both side-by-side, so the walkthrough is self-contained for both cases.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: mintlify/snippets/global-accounts/walkthrough.mdx
    Line: 219-249
    
    Comment:
    **Walkthrough only shows `CUSTOMER` example for three documented options**
    
    The section text lists three destination variants (`ACCOUNT`, `CUSTOMER`, `SPARK_ADDRESS`) and notes that SPARK_ADDRESS can reach wallets outside the caller's platform, which is meaningfully different from the customer example. The curl block only demonstrates `CUSTOMER`. A developer integrating SPARK_ADDRESS would have to find the example in the API reference. Consider either adding a second code block for SPARK_ADDRESS, or using a `<CodeGroup>` to show both side-by-side, so the walkthrough is self-contained for both cases.
    
    How can I resolve this? If you propose a fix, please make it concise.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
openapi/components/schemas/transactions/SparkAddressTransactionDestination.yaml:17-21
**`onChainTransaction` field reused for off-chain Spark transfer**

The `onChainTransaction` field is borrowed from `AccountTransactionDestination`, where its child fields are documented as "On-chain transaction hash" (`transactionHash`) and "Blockchain network" (`network`). Spark is a Layer 2 / off-chain protocol, so those field-level descriptions are semantically incorrect for a Spark transfer — developers will see `transactionHash` described as an "on-chain hash" for a payment that never settles on-chain. If Spark transfer records are genuinely represented by this same schema at runtime, consider adding a clarifying note on each child field (or aliasing the schema) so callers understand what the hash and network values represent in the Spark context.

### Issue 2 of 2
mintlify/snippets/global-accounts/walkthrough.mdx:219-249
**Walkthrough only shows `CUSTOMER` example for three documented options**

The section text lists three destination variants (`ACCOUNT`, `CUSTOMER`, `SPARK_ADDRESS`) and notes that SPARK_ADDRESS can reach wallets outside the caller's platform, which is meaningfully different from the customer example. The curl block only demonstrates `CUSTOMER`. A developer integrating SPARK_ADDRESS would have to find the example in the API reference. Consider either adding a second code block for SPARK_ADDRESS, or using a `<CodeGroup>` to show both side-by-side, so the walkthrough is self-contained for both cases.

Reviews (1): Last reviewed commit: "Add P2P quote destinations" | Re-trigger Greptile

Comment thread openapi/components/schemas/transactions/SparkAddressTransactionDestination.yaml Outdated
@DhruvPareek
DhruvPareek force-pushed the dp/grid-p2p-quote-destinations branch from 7e4b0dd to 6f3275c Compare August 1, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Introduces a breaking change to the OpenAPI spec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant