The result: your user makes one transfer, and arrives at the exact on-chain state you defined.
How It Works
Enabling a post-bridge action requires no additional API calls or integration steps. You simply include apostBridgeData field in your bridge quote or Smart Deposit Address generation request. We take care of the contract approval, encoding, execution, and error handling on the destination chain.
The postBridgeData field accepts:
- Tag under
_tagthat specifies the post bridge action you want to execute - Optional custom parameters to specify a custom target like vault, user ID or invoice ID
Use Cases
PBAs apply wherever you need a defined on-chain outcome rather than just a token credit. Common patterns: Yield and protocol integrations Deposit bridged funds directly into a vault, lending pool, or staking contract. The userβs recipient address receives the protocolβs output token (e.g. vault shares, staked positions). Custodial and off-chain crediting For custodial platforms and exchanges, PBAs can trigger a contract that signals an off-chain system like crediting a userβs account, updating a balance, or notifying a clearing layer, without requiring the user to interact with your chain/system directly. Payments and holding accounts Trigger a contract that routes funds to a payment processor, holding account, or escrow. Useful for on-chain invoicing, subscription flows, or multi-party settlement. In all cases, the integration surface is the same: one additional field on a request youβre already making.Integration
With a Bridge Quote
AddpostBridgeData to your POST /bridge/quote/user request body:
With a Smart Deposit Address
AddpostBridgeData to your POST /sda/deposit-addresses request. Every deposit to that address will trigger the same action automatically β no per-deposit configuration needed.
The postBridgeData Field
| Field | Type | Required | Description |
|---|---|---|---|
_tag | string | β | Specifies the post bridge action configuration. |
| optional custom params | string / integer | - | Specifies a custom target like a user, merchant or payment |
Example β Bridge into a Morpho Vault
A user holds USDT on Arbitrum and wants to enter a USDC yield vault on Base. Without PBA, they would need to: swap USDT β USDC, bridge to Base, approve the vault, and calldeposit() themselves β four to five steps across two chains.
With PBA + SDA, you generate one deposit address per user. They send USDT on Arbitrum. We swap, bridge, and execute the vault deposit. Their wallet receives vault shares on Base.
depositAddress for any of the supported source chains. They send funds. The vault deposit happens automatically.
In the example above, the user can send USDC or USDT on Arbitrum, Ethereum and Base (yes, same chain works as well). We process any supported token and your user ends up with Morpho USDC yield token on Base with on the specified destination address.
What Happens If the Action Fails
If the contract call reverts on the destination chain, funds are not lost. Depending on your account configuration, we will either retry (for transient failures), credit the destination token directly to thedestinationAddress, or notify you via webhook and await instructions.
Test your contract integration before going live. Contact your account representative to enable testnet access.
Limitations
- ERC-20 type tokens only β native gas tokens (ETH, SOL, etc.) cannot be the input to a post-bridge action yet
- One action per bridge β chaining multiple contract calls in sequence is not currently supported
- EVM destination chains only β non-EVM destinations (i.e. Solana) are on the roadmap
- PBA must be enabled on your account β the field is optional but your quote/SDA generation will fail if your account does not have PBA activated
Next Steps
- Smart Deposit Addresses β Full SDA documentation
- API Reference β User Quote β
postBridgeDatafield schema - API Reference β Create Deposit Address β
postBridgeDatafield schema