Coinflow utilities API
The utilities API from Coinflow — 3 operation(s) for utilities.
The utilities API from Coinflow — 3 operation(s) for utilities.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coinflow-utilities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference authentication Utilities API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: utilities
paths:
/utils/contract-address:
get:
operationId: get-contract-addresses
summary: Get the Coinflow Contract Address
description: Get the Coinflow Contract address by blockchain
tags:
- utilities
parameters:
- name: blockchain
in: query
description: '- Blockchain to get the contract address of'
required: true
schema:
$ref: '#/components/schemas/Blockchain'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Utilities_GetContractAddresses_Response_200'
/utils/send-coinflow-tx:
post:
operationId: send-coinflow-transaction
summary: Send Coinflow Signed Solana Transaction
description: 'Send a Coinflow generated and signed transaction
Use Coinflow''s battle tested ⚔️ Transaction Sending (The same system we use to send our own transactions)
This endpoint sends a fully signed Solana transaction with retries thru stable RPC servers.
This endpoint is specifically used in the case that the transaction attempting to be sent
was pre-signed by one of Coinflow''s wallets.
For example:
Transaction is retrieved from the /api/redeem endpoint, that transaction
comes with the feePayer set and pre-signed by one of Coinflow''s fee payer wallets.
This endpoint can then be called directly from a frontend without the need for the
merchant''s API key like the /send-solana-tx endpoint above.'
tags:
- utilities
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Utilities_SendCoinflowTransaction_Response_200'
'412':
description: Transaction Simulation Failed
content:
application/json:
schema:
$ref: '#/components/schemas/SendCoinflowTransactionRequestPreconditionFailedError'
'417':
description: Transaction Expired, fetch a new transaction, re-sign, and resend
content:
application/json:
schema:
description: Any type
'503':
description: The transaction can't be confirmed, fetch a new transaction, re-sign, and resend
content:
application/json:
schema:
description: Any type
requestBody:
description: "- merchantId: A valid merchant id\n signedTransaction: The signed transaction\n confirm: Confirm the solana transaction - Will cause the response times to be longer"
content:
application/json:
schema:
$ref: '#/components/schemas/SendTransactionBody'
/utils/send-solana-tx:
post:
operationId: send-solana-transaction
summary: Send Solana Transaction
description: 'Use Coinflow''s battle tested ⚔️ Transaction Sending (The same system we use to send our own transactions).
This endpoint sends a fully signed Solana transaction with retries and stable RPC servers.
This is helpful during periods of network instability where the solution is to use better private RPC servers,
retry transactions multiple times.'
tags:
- utilities
parameters:
- name: Authorization
in: header
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/SendSolanaTransactionResponse'
'412':
description: Transaction Simulation Failed
content:
application/json:
schema:
$ref: '#/components/schemas/SendSolanaTransactionRequestPreconditionFailedError'
'417':
description: Transaction Expired, fetch a new transaction, re-sign, and resend
content:
application/json:
schema:
description: Any type
'503':
description: The transaction can't be confirmed, fetch a new transaction, re-sign, and resend
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendSolanaTransactionRequest'
components:
schemas:
SendCoinflowTransactionRequestPreconditionFailedError:
type: object
properties:
logs:
type: string
required:
- logs
title: SendCoinflowTransactionRequestPreconditionFailedError
SendSolanaTransactionResponse:
type: object
properties:
signature:
type: string
description: 'To confirm that this transaction was successful call `connection.confirmTransaction(signature)`
which will query the chain to see if the transaction was confirmed.'
required:
- signature
title: SendSolanaTransactionResponse
SendSolanaTransactionRequest:
type: object
properties:
confirm:
type: boolean
description: '(Default: false)
Solana transactions after submission need to be confirmed as having been
picked up by the network. State such as balance changes will not reflect until the transaction has been confirmed.
Additionally, errors such as invalid signers, insufficient gas, and network congestion can lead to the transaction being dropped.
The most ideal solution to this is for you to implement your own client side confirmation logic with the Solana SDK,
however we understand that is complex and not every merchant wants to do that.
Setting this property to true will mean the call will not return with your signature, until the solana transaction
has been confirmed. If the transaction is unable to be confirmed by the time the blockhash expires, then you wil receive a 503 error.'
transaction:
type: string
description: 'Base 58 encoded Solana Transaction. Supports Transctions and VersionedTransactions.
Transaction must be signed by all signers.'
required:
- transaction
title: SendSolanaTransactionRequest
SendTransactionBody:
type: object
properties:
confirm:
type: boolean
description: '(Default: false)
Solana transactions after submission need to be confirmed as having been
picked up by the network. State such as balance changes will not reflect until the transaction has been confirmed.
Additionally, errors such as invalid signers, insufficient gas, and network congestion can lead to the transaction being dropped.
The most ideal solution to this is for you to implement your own client side confirmation logic with the Solana SDK,
however we understand that is complex and not every merchant wants to do that.
Setting this property to true will mean the call will not return with your signature, until the solana transaction
has been confirmed. If the transaction is unable to be confirmed by the time the blockhash expires, then you wil receive a 503 error.'
merchantId:
type: string
description: Merchant ID associated with the transaction
signedTransaction:
type: string
description: The message which has already been signed by the user and Coinflow.
required:
- merchantId
- signedTransaction
title: SendTransactionBody
Utilities_GetContractAddresses_Response_200:
type: object
properties:
address:
type: string
required:
- address
title: Utilities_GetContractAddresses_Response_200
Blockchain:
type: string
enum:
- solana
- eth
- polygon
- base
- user
- arbitrum
- stellar
- monad
- tempo
title: Blockchain
Utilities_SendCoinflowTransaction_Response_200:
type: object
properties:
signature:
type: string
required:
- signature
title: Utilities_SendCoinflowTransaction_Response_200
SendSolanaTransactionRequestPreconditionFailedError:
type: object
properties:
logs:
type: string
required:
- logs
title: SendSolanaTransactionRequestPreconditionFailedError
securitySchemes:
wallet:
type: apiKey
in: header
name: x-coinflow-auth-wallet
description: The web3 wallet of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
blockchain:
type: apiKey
in: header
name: x-coinflow-auth-blockchain
description: The blockchain associated with the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
userId:
type: apiKey
in: header
name: x-coinflow-auth-user-id
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
merchant:
type: apiKey
in: header
name: Authorization
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
signedMessage:
type: apiKey
in: header
name: x-coinflow-auth-signed-message
description: The message signed by the users wallet
merchantId:
type: apiKey
in: header
name: x-coinflow-auth-merchant-id
description: The merchant ID the session should be generated for
sessionKey:
type: apiKey
in: header
name: x-coinflow-auth-session-key
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
admin:
type: apiKey
in: header
name: Authorization