Skip to main content

Frequently asked questions

Do you hold my tokens?​

No. CoRelayer never takes custody of anything you own. You sign a transaction; we add a second signature that makes us the fee payer; the network does the rest. There is no approval step, no allowance and no deposit of your assets. The only money you send us is the USDC that buys a plan, and that goes to the contract, not to a wallet of ours.

Can you change my transaction?​

No. Your signature covers every field of the transaction, including the receiver, the amount, the data, the gas limit and the relayer address. Change one byte and the signature is worthless. Our signature is a second, separate signature over the very same bytes.

What a relayer can do is delay a transaction or decline to broadcast it. That is why the relayer that will carry it is named to you before you sign, and why you can check its state in the registry on chain, through a gateway that is not ours. (What we can and cannot do · Verify a relayer)

Do I need EGLD at all?​

No. You need USDC to buy a plan, and nothing else. The network fee is paid by the relayer in EGLD, and the screen where you sign shows it as paid by CoRelayer. Buying the plan is itself one of the calls CoRelayer pays for.

What are the limits on a relayed transaction?​

A gas price at most twice the network minimum, at most 4,096 bytes of data, and at most 25 Relay Units for one transaction (15 on Starter and Agent Metered). A transaction outside those bounds is refused before anything is signed, and the refusal names the limit. (Limits)

Can you send my transaction twice?​

The protocol prevents it. A transaction occupies one (sender, nonce) slot, and once that nonce has executed, another transaction carrying it is rejected by the network itself. Re-broadcasting identical bytes is harmless: it is the same transaction, with the same hash. (Delivery guarantees)

What if my transaction fails on chain?​

You are charged. A transaction that reverts still costs the relayer the full fee — the network does not give it back — so a failed transaction consumes its Relay Units exactly like a successful one. What is not charged is a transaction that was never executable at all: a nonce that was already used, a fee the network refused. Those cost nothing because they cost the relayer nothing.

Are plans refundable?​

No, and the contract has no path that would make them refundable. USDC that enters becomes credits; credits buy plans. This is stated plainly rather than buried: buy the size you will use, and use pay-as-you-go rather than a bigger tier if your volume is spiky.

When you turn pay-as-you-go off, the unspent escrow goes back to your credits once the last usage is settled. That release is an endpoint the contract can never switch off. Credits themselves stay non-refundable: nothing goes back to your wallet.

What happens when my plan runs out?​

If pay-as-you-go is off, relays stop with QUOTA_EXHAUSTED — a 429 with no Retry-After, because waiting does not help. If pay-as-you-go is on, relays continue and are billed per unit at your plan's pay-as-you-go price until the escrow behind it is empty.

Why is there a relayer per shard?​

MultiversX is sharded, and the fee payer of a relayed transaction has to be in the same shard as the sender. So there is not one relayer, there is a set, and the right one for your address is picked deterministically. (Shards and routing)

What if the relayer you gave me disappears before it signs?​

Then nothing was sent, and you are asked to sign once more for a different relayer, on the same nonce. That is the only situation in which you are ever asked for a second signature, and you are always told that the first attempt produced nothing. (The re-sign case)

Can I pay for all my users?​

Yes, from Builder up, and on Agent Pro and Agent Fleet. A sponsor key on your server pays for any sender, with no list to keep and no fee per user: your plan limits transactions, not users. The key pays only for the contracts you list, with optional daily limits per user. It covers senders whose key your server holds or reaches, such as embedded or custodial wallets, game servers, bots and agent fleets. (Pay for your users)

My dApp has 10,000 users. Which plan?​

Size it by transactions, not users. A sponsor key covers any number of wallets your server runs, from Builder up, such as embedded or custodial wallets; the plan limits transactions, not users. Estimate the transactions per user in 30 days, multiply by your users, and pick the plan whose included units cover it. Pay-as-you-go absorbs the peaks. Named wallets are for the few addresses you know in advance, such as your team's.

If your users sign in their own wallet, such as xPortal, the Web Wallet, the browser extension or a Ledger, CoRelayer can't relay for them yet. (Which senders a sponsor key covers · Tiers)

Can someone else use my plan?​

Yes, in two ways. A sponsor key on your server pays for any sender whose key your server holds or reaches, within the contracts and daily limits you set, from Builder up. Its receiver allow-list is mandatory, so a leaked key cannot be pointed at a contract of the thief's choosing. Or you list a few addresses on chain as named wallets, up to the count your plan includes. (Paying for other senders · Key handling)

What do you learn about me?​

Everything we relay is public: it goes on a public chain, signed by you. On top of that we keep what a billing system has to keep — which account paid for which transaction, when, and how many Relay Units it cost. We do not ask for a name, and the login is a wallet signature, not an account with a password.

Do I have to use the SDK?​

No. The SDK is a typed convenience over an ordinary HTTPS API; every route is documented and callable with curl. What the SDK adds is the transport failover, the typed errors and a relay helper that structurally cannot ask you to sign twice. (SDK)