cURL
Solana Support
Submit Transaction
Submit a previously prepared transaction with required signatures
POST
cURL
This endpoint submits a previously prepared transaction to the blockchain after verifying the required signatures from Grid Account authorization keys.Documentation Index
Fetch the complete documentation index at: https://developers.squads.so/llms.txt
Use this file to discover all available pages before exploring further.
This endpoint requires a prepared transaction and valid signatures. Use transaction
preparation endpoints first, then sign the KMS payload with your decrypted authorization key
before calling this endpoint.
Account Type Signing Flows
Grid supports two types of accounts with different signing requirements. Choose the appropriate flow based on how your account was created:Email-based Account Signing Flow
Email-based Account Signing Flow
For accounts created with email authentication (using Privy):
High-Level Process
- Prepare Transaction: Call transaction preparation endpoints (payments, transfers, etc.)
- Receive KMS Payload: Extract the
kms_payloadfrom the preparation response - Sign Payload: Use your decrypted Privy authorization key to sign the canonical JSON
- Submit Transaction: Call this endpoint with the signature and transaction data
Key Requirements
- Authorization keys from email account creation/authentication
- JSON canonicalization of the KMS payload (recursive key sorting)
- ECDSA P-256 SHA-256 signature algorithm
Complete Implementation Guide
For detailed implementation including HPKE keypair generation, authorization key decryption, JSON canonicalization, payload signing, and language-agnostic examples, see the Primary Provider Integration guide.Signer-based Account Signing Flow
Signer-based Account Signing Flow
For accounts created with Ed25519 public keys:The signed transaction proves you have access to the required number of Grid Account signing keys and authorizes the transaction execution.
Signing Process
- Prepare Transaction: Call transaction preparation endpoints (payments, transfers, etc.)
- Receive Transaction: Extract the prepared Solana transaction from the response
- Sign Transaction: Use your Ed25519 private keys with standard Solana transaction signing (e.g., web3.js)
- Submit Transaction: Call this endpoint with the signed transaction
Signature Requirements
- Ed25519 private keys corresponding to the public keys specified during account creation
- Threshold signatures meeting the account’s signing threshold
- Standard Solana transaction signing (no KMS payload or JSON canonicalization required)
Signer-based accounts use regular Solana transaction signing with libraries like
web3.js. No KMS payload processing or JSON canonicalization is required.
Implementation with web3.js
KMS Payload Schema
Thekms_payloads field contains the signed KMS payloads from your key management provider. Each payload has a provider and a kms_signed_payload whose shape depends on the provider. See the auto-generated request body schema below for full field details.
Request Examples
Single Transaction (Privy)
Single Transaction (Privy)
Single Transaction (Turnkey)
Single Transaction (Turnkey)
Multiple Transactions
Multiple Transactions
When submitting multiple transactions, use
transactions (plural) and nest kms_payloads as an array of arrays — one inner array per transaction:Legacy Format (Privy only, backward-compatible)
Legacy Format (Privy only, backward-compatible)
This format places the signature at the top level instead of inside
kms_signed_payload. It is supported for backward compatibility with Privy accounts only.Authorizations
Your Grid API key from the Grid Dashboard
Headers
Solana network environment (sandbox, devnet, mainnet)
Path Parameters
Smart account address (Solana public key)
Body
application/json