curl --request POST \
--url https://api.brdg.now/v1/fastfill/transfers/{id}/submit \
--header 'Content-Type: application/json' \
--data '
{
"signature": "0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
signature: '0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b'
})
};
fetch('https://api.brdg.now/v1/fastfill/transfers/{id}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.brdg.now/v1/fastfill/transfers/{id}/submit"
payload = { "signature": "0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"transferId": "6f1d2c0a-4b7e-4c55-9a1e-2f0e8c3b7d41",
"status": "SUBMITTED",
"txHash": "0x8f3c2b1a9d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a",
"step": "main",
"accepted": true,
"verification": "pending"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}Submit fast fill signature
Checks that the signature recovers to owner over exactly the built message, then hands it to the venue’s relayer, which sends the source transaction and pays its gas. txHash is that transaction once the venue names it, usually within seconds. txHash: null with status: "PENDING" means the relayer holds the signature and has not broadcast yet; BRDG keeps tracking it, and submitting again is safe. Send the one time Permit2 approve through POST /bridge/transfers/{id}/submit with step: "approve" first.
curl --request POST \
--url https://api.brdg.now/v1/fastfill/transfers/{id}/submit \
--header 'Content-Type: application/json' \
--data '
{
"signature": "0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
signature: '0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b'
})
};
fetch('https://api.brdg.now/v1/fastfill/transfers/{id}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.brdg.now/v1/fastfill/transfers/{id}/submit"
payload = { "signature": "0xedc90fdd27654dd49ac1087901450c9c5fdf444943f61faa8d787bee86304d821f06a5db4a67eddf5cf286014d6ec8bd33c64f9e072045a9f3c5e50cc28960fc1b" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"transferId": "6f1d2c0a-4b7e-4c55-9a1e-2f0e8c3b7d41",
"status": "SUBMITTED",
"txHash": "0x8f3c2b1a9d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a",
"step": "main",
"accepted": true,
"verification": "pending"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"retryAfterMs": 123
}
}Headers
Optional partner key for server integrators. With it, each wallet is rate limited under the partner rather than on the IP of the calling server (a call naming no wallet, per the userIp in the body), bounded by a partner-wide ceiling. Unknown or disabled keys are refused with 401. See rate limits.
Path Parameters
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Body
Response
The transfer’s new state and the relayer’s hash, when known
approve, fee, main, redeem verified, pending, unverified_no_rpc, unverified_rpc_error, refuted, null