Skip to content

Submit a Gasless Transaction

Authentication is mandatory — provide either a Relayer API Key or L2 (HMAC) credentials. Once accepted, the transaction enters a processing pipeline: it is queued, broadcast to the chain, and tracked through a state machine until it reaches a terminal state.

POST /submit

Server: https://api.openfish.fun

Authentication: Relayer API Key (preferred) or L2 (HMAC) required


HeaderDescription
RELAYER_API_KEYRelayer API key
RELAYER_API_KEY_ADDRESSAssociated address
HeaderDescription
OPENFISH_API_KEYAPI key (UUID)
OPENFISH_TIMESTAMPUnix timestamp
OPENFISH_PASSPHRASEAPI passphrase
OPENFISH_SIGNATUREHMAC-SHA256 signature

Content-Type: application/json

FieldTypeRequiredDescription
fromstringYesSender address
tostringYesTarget contract address
proxyWalletstringNoProxy wallet address (if applicable)
datastringYesHex-encoded calldata (e.g. "0xa9059cbb...")
noncestringNoTransaction nonce
signaturestringNoEIP-712 signature
signatureParamsstringNoAdditional signature parameters
typestringNoRelay type: "PROXY" or "SAFE"
{
"from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
"to": "0xA642f9165D192Ff13b1D43a0Ef56B3BD074614bB",
"data": "0xa9059cbb000000000000000000000000...",
"type": "PROXY"
}

200 — Transaction accepted for processing

Section titled “200 — Transaction accepted for processing”
FieldTypeDescription
transactionIDstringTransaction UUID
statestring"STATE_NEW" — progresses to STATE_EXECUTED then STATE_CONFIRMED or STATE_FAILED
nonceintegerMeta-transaction nonce used
{
"transactionID": "0190b317-a1d3-7bec-9b91-eeb6dcd3a620",
"state": "STATE_NEW",
"nonce": 61
}
STATE_NEW -> STATE_EXECUTED -> STATE_CONFIRMED
-> STATE_FAILED
StateDescription
STATE_NEWReceived and queued, not yet broadcast
STATE_EXECUTEDSent to the chain, waiting for block confirmation
STATE_CONFIRMEDSuccessfully included in a confirmed block
STATE_FAILEDExecution reverted or submission error occurred
{ "error": "invalid JSON: ..." }
{ "error": "invalid authorization" }
{ "error": "Internal server error" }