Skip to content
Blockchain Brief

Protocol, chain and market reporting

Three limits to check after a partial Polygon bridge deposit

A split deposit is a set of separate bridge calls, not one partial fill: track each source transaction and check limits at the token, contract and interface layers.

The Blockchain Brief Desk5 min read

Cover artwork for Three limits to check after a partial Polygon bridge deposit

A partial deposit to Polygon is a separate bridge transaction for each amount sent; the PoS bridge does not combine several sends into one pending transfer. Each call has its own source-chain result and destination-chain delivery, so the amount credited can differ from the total you planned if one call fails or remains pending. Check three layers before sending the rest: the token’s allowance and behavior, the bridge contract’s checks, and any limit imposed by the interface you use.

The distinction matters when a transfer appears incomplete. A confirmed Ethereum transaction can still be waiting for the state sync that delivers its deposit to Polygon. The Polygon Bridge guide to pending and failed transfers covers those statuses in more detail. For a split deposit, inspect each transaction separately; the status of one does not establish the status of the others.

Does the bridge treat several deposits as one transfer?

No. Each successful deposit call is processed as its own transfer. In the PoS Portal flow, the RootChainManager’s depositFor call passes the user, root token and deposit data to a token predicate. That predicate handles the token-specific lock, then the manager sends a deposit message through the StateSender to the child-chain manager. The child-side deposit handling mints or releases the corresponding representation for the specified user.

That flow has no general “complete the remainder” operation. If you send one amount, then later send another, the bridge processes two deposits and produces two source-chain records. A dashboard may display them together under one wallet or asset, but that presentation does not make them one contract call or one atomic transfer. If one succeeds and the other reverts, only the successful call proceeds to destination delivery.

Splitting also changes the cost profile. Each source-chain transaction consumes gas, and an ERC-20 may require a separate approval transaction before the first deposit. A sufficiently large allowance can cover multiple deposits, but the allowance does not reserve a bridge slot or prove that a deposit completed. Check the token allowance and the receipt for every send.

Which limit applies after a partial deposit?

There is no single universal “remaining bridge limit” that can be inferred from the fact that part of an intended amount arrived. The relevant ceiling may come from the token, the bridge’s configured token route, the contract call, or a third-party interface. Those limits can have different scopes: a per-transaction ceiling does not necessarily equal a wallet-wide or daily ceiling.

  • Token layer: Confirm the token is supported and mapped to its Polygon-side representation. Check its transfer and approval behavior. A token with unusual transfer logic may not behave like a standard ERC-20.
  • Bridge layer: The RootChainManager checks that the token is mapped and deposits are enabled, then delegates locking to the registered predicate. Those checks apply to each call; a failed call does not become valid because earlier calls succeeded.
  • Interface layer: A wallet, exchange or bridge front end can enforce its own amount or workflow limits. Treat that as a limit of that route unless its operator identifies it as a contract-level rule.

The practical rule is to verify the maximum against the same token route and contract path you intend to use. Do not assume that sending smaller pieces bypasses a route restriction: every piece still has to pass the relevant checks. Conversely, a front-end maximum does not by itself establish that the underlying contract rejects a larger call.

When should you send the next part?

Send the next part only after reconciling the previous source transaction. A successful source-chain receipt means that transaction executed; it does not by itself prove that the destination-side credit is already visible. Check the transaction’s logs and bridge status, then confirm the Polygon balance or destination event before counting the amount as received.

If the source transaction reverted, the contract call did not complete, although the sender may still have paid gas. If the source transaction succeeded but destination delivery is pending, do not resend the same amount just because the Polygon balance has not updated yet. A second call creates another deposit; it does not retry the first one, and both could eventually arrive.

For a partial transfer, keep a simple ledger of each source transaction hash, amount, source receipt and destination result. Compare the amounts actually locked and credited, accounting for token decimals and any token-specific transfer behavior. The amount typed into an interface is not a substitute for the on-chain result.

What is the safest way to split a deposit?

Use the smallest number of calls that fits the confirmed limits and the transaction size you can verify. More pieces can make reconciliation easier when a route has a genuine per-call ceiling, but each piece adds another transaction that can fail, wait or require investigation. Splitting solely to work around an unexplained rejection can multiply gas costs without resolving the underlying issue.

Before sending, confirm the network, token contract, destination address and the applicable limit for that route. After each call, wait for its own source receipt and bridge status. The key distinction is simple: partial deposits are separate transfers, while limits attach to specific tokens, contract paths or interfaces. Treating both facts explicitly prevents a pending amount from being mistaken for a failed one or a second send from becoming an accidental duplicate.