Skip to content
IceRootDocs

Integration principles

Reliable integrations keep identity, precision, and state explicit.

Use the Asset ID as a key. Store names, symbols, and logos as metadata. A ticker is a display value, and two records with the same ticker may describe different assets.

Keep API decimal strings or convert them to integer base units using the asset’s precision. Use exact arithmetic for totals, balance checks, and fees.

Do not use Number for amounts that require more precision than JavaScript floating point can preserve. Format a value for display only after its arithmetic is complete.

StateWhat it establishes
PreparedAn application assembled an action
SignedThe relevant identity authorized exact bytes
SubmittedA service received the action
IncludedA recorded block contains it
FinalThe network’s finality rule is satisfied

Only show a state when its data source supports it. A timestamp from your server is not a block timestamp. A local simulation is not a chain confirmation.

Distinguish an empty result from a failed request. Keep stale data labeled when retrying, and avoid silently substituting local examples.

For write operations, follow the selected API’s transaction identity and retry rules. A timeout alone does not establish whether a submitted action was accepted.

A valid signature proves control of a key for a particular message. Your server still has to verify the requested purpose, network, expiry, ownership, and permissions.

Use network configuration and the wallet provider contract as the next integration checkpoints.