Skip to main content
Retries failed deployments or funding transfers from a previous /deploy/settle call. If the payment succeeded but the deployment or funding partially failed, use this endpoint to retry without paying again.
POST /wallet/claim

Request Body

At least one of paymentTxHash or payerAddress is required.
FieldTypeRequiredDescription
paymentTxHashstringConditionalTransaction hash of the original fee payment
payerAddressstringConditionalAddress that paid for deployment
Provide paymentTxHash to retry a specific deployment batch. Provide payerAddress to retry all pending deployments for that payer. You can provide both to narrow the scope.

Response (200)

FieldTypeDescription
successbooleanWhether all retries completed successfully
deploymentsobjectDeployment retry results
deployments.successfulobject[]Wallets that deployed successfully on retry
deployments.successful[].addressstringWallet address
deployments.successful[].deploymentTxHashstringNew deployment transaction hash
deployments.failedobject[]Wallets that still failed
deployments.failed[].addressstringWallet address
deployments.failed[].reasonstringWhy deployment failed again
fundingobjectFunding retry results
funding.successfulobject[]Wallets that were funded successfully on retry
funding.successful[].addressstringWallet address
funding.successful[].fundingTxHashstringNew funding transaction hash
funding.failedobject[]Wallets that still failed to fund
funding.failed[].addressstringWallet address
funding.failed[].reasonstringWhy funding failed again
networkstringNetwork where retries were attempted

Examples

cURL

# Retry by payment transaction hash
curl -X POST https://facilitatorv3.b402.ai/wallet/claim \
  -H "Content-Type: application/json" \
  -d '{
    "paymentTxHash": "0x...original_payment_tx"
  }'

# Retry all pending for a payer
curl -X POST https://facilitatorv3.b402.ai/wallet/claim \
  -H "Content-Type: application/json" \
  -d '{
    "payerAddress": "0xAbC1234567890aBcDeF1234567890AbCdEf123456"
  }'

TypeScript

const response = await fetch("https://facilitatorv3.b402.ai/wallet/claim", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    paymentTxHash: originalPaymentTxHash,
  }),
});

const result = await response.json();

if (result.success) {
  console.log("All retries succeeded");
} else {
  if (result.deployments.failed.length > 0) {
    console.error("Still failed to deploy:", result.deployments.failed);
  }
  if (result.funding.failed.length > 0) {
    console.error("Still failed to fund:", result.funding.failed);
  }
}

Example Response

{
  "success": true,
  "deployments": {
    "successful": [
      {
        "address": "0x...wallet_address",
        "deploymentTxHash": "0x...new_tx_hash"
      }
    ],
    "failed": []
  },
  "funding": {
    "successful": [
      {
        "address": "0x...wallet_address",
        "fundingTxHash": "0x...new_tx_hash"
      }
    ],
    "failed": []
  },
  "network": "bsc"
}

When to Use Claim

Call /wallet/claim when:
  • /deploy/settle returned deploymentSuccess: false or fundingSuccess: false
  • The failedWallets or failedFundings arrays in the settle response are non-empty
  • You want to retry all pending operations for a payer address
Claim only retries operations where the payment already succeeded. If the payment itself failed during settle, you need to start a new verify/settle flow.
There is no additional fee for retrying via claim. The original payment covers all retry attempts.

Error Codes

CodeHTTP StatusDescription
validation_error400Neither paymentTxHash nor payerAddress provided
not_found404No pending deployments found for the given parameters
deployment_error500Retry failed due to on-chain error
blockchain_error500RPC or network-level failure