Service Limits

This page lists the hard and soft limits that apply to CRE Connect resources. All hard limits are enforced server-side and are reflected in the OpenAPI specification (/api/crec/openapi.json); rate limits and per-environment quotas are negotiated with the Chainlink team.

Wallet (Smart Account) limits

Enforced via the OpenAPI RSASignersList and ECDSASignersList schemas (maxItems: 10, minItems: 0, uniqueItems: true).

LimitValueNotes
allowed_ecdsa_signers per wallet0–10Unique 42-character 0x Ethereum addresses.
allowed_rsa_signers per wallet0–10Unique RSA public keys ({e, n} hex).
RSA modulus minimum2048 bitsn must be hex of ≥ 256 bytes.
RSA exponent2–17 bytese is hex; common values are 0x010001 (= 65537).
Wallet name1–255 charsNon-blank.
Wallet description1–255 charsNon-blank.

A wallet's signer set is fixed at creation time. To rotate signers today, archive the old wallet and provision a new one with the updated lists; see Manage Signers.

Watcher limits

LimitValueNotes
Watcher name4–255 charsValidated by the SDK (ErrWatcherNameTooShort).
Service watchers per channelper-environmentSoft limit: contact support to raise.
ABI watchers per channelper-environmentSoft limit.
Events list per ABI watcher1+At least one event must be supplied (ErrEventsRequired).
ABI types acceptedonly eventErrInvalidABIType for any other ABI fragment.

Channel limits

LimitValueNotes
Channel name1–255 charsNon-blank.
Channel description1–255 charsNon-blank.
Active watchers required to archive0A channel cannot be archived while any watcher is active.

Operation limits

LimitValueNotes
Transactions per operation1–16At least one transaction (ErrAtLeastOneTransactionRequired).
wallet_operation_idunique per (wallet, chain) among non-terminal statusesEnforces single-use idempotency. Can be reused after cancelled / expired / failed.
Deadlinenon-negative int64ErrInvalidDeadline for negative or overflowing values. 0 = no expiration.
Deadline buffer60 secondsServer rejects finalize 60s before on-chain deadline to allow relay time.

Query limits

LimitValueNotes
Default TTL5 minutesQueries expire if no terminal callback arrives within this window.
Metadata sizemax 16 KBOptional metadata field on query create.
from_addressoptionalDefaults to zero address (0x0000…0000) if omitted.
Block selectionlatest, finalized, block_numberNote: safe is not available for queries (only for watchers).

Pagination

All listing endpoints (/wallets, /channels, /channels/{id}/watchers, /channels/{id}/operations, /channels/{id}/queries, /channels/{id}/events) accept limit and either offset or a time-based cursor. Per-page maxima are enforced server-side; the response always includes has_more: bool so applications can paginate without knowing the cap. Refer to the interactive REST reference for each endpoint's exact limit parameter and any server-side cap.

Rate limits

When you exceed a rate limit, the API returns 429 Too Many Requests. The Go SDK's watcher polling helpers (WaitForActive / WaitForArchived) classify 429 as transient and continue to the next poll tick; for every other endpoint the SDK does not retry: implement your own retry logic. See Error Handling for the full classification.

Connectivity limits

LimitValueNotes
HTTP request timeoutnone unless you set oneWhen you don't pass crec.WithHTTPClient, the SDK uses Go's http.DefaultClient, which has no timeout. Provide an *http.Client with Timeout set in production.
WebSocket supportnot currently exposedAll event delivery is over HTTP polling.

Cryptographic limits

LimitValueNotes
DefaultMinRequiredSignatures4F+1 where F = 3 (production DON BFT). Don't raise; see SDK Configuration.
DefaultValidSigners10 production DON keysOverride with WithEventVerification for non-production environments.

See also

Get the latest Chainlink content straight to your inbox.