URL
Initialization parameters
| Property | Type | Required | Description |
|---|---|---|---|
clientToken | string | ✅ | The client token returned from the connect flow. |
channelId | string | ✅ | A unique identifier for the frame generated on your client. This value is attached to each postMessage payload to help identify messages.The format of this string is up to you. |
signature | string | ✅ | The quote signature from the quote endpoint. Pass signature as returned. |
externalTransactionId | string | Your own identifier for the transaction. Stored and associated with the MoonPay transaction for correlation. |
Events
All events are dispatched using the message pattern described in the frames protocol. The Buy Button frame uses the same event payloads as the Buy frame; only the experience differs.Outbound events
frame->parent These events are sent from this frame to the parent window.handshake
The frame requests that you open a message channel.
ready
The frame finished loading and the payment button is rendered. Use this to
coordinate UI transitions if needed.
complete
The transaction is complete. Use the transaction ID to track final status via
polling.
challenge
Verification is required before the transaction can proceed. Render the
challenge frame at the provided URL. Do not
construct the URL yourself — use it as-is.
error
A terminal error occurred. Remove the frame and surface the message to the
developer.
| Code | Description |
|---|---|
configurationError | Missing or invalid signature parameter |
invalidQuote | Unable to decode the quote signature |
generic | Unspecified error |
Inbound events
parent->frame These events are sent from the parent window to this frame.ack
Acknowledge the handshake.
setQuote
Provide a new quote to the frame. Send this when the current quote expires
before the customer completes the purchase. Pass signature as returned by the
quote endpoint.