If you are building on Canton and want your application to work with Loop wallets, this is the place to start.
What an integration looks like
Your application asks a Loop user to approve an action, the user signs it in their wallet, and the transaction settles on Canton. Your app never holds the user's keys and never sees their credentials. Everything the user approves, they approve inside Loop.
Start with the SDK
The Loop SDK is published on npm as @fivenorth/loop-sdk. Anything that runs on your own server should use the server variant, @fivenorth/loop-sdk/server, so that keys and secrets never reach the browser.
The source lives at github.com/fivenorth-io/loop-sdk, and the full endpoint reference is in that repository at docs/api-reference.md. A written overview of the SDK is published at docs.fivenorth.io.
Read the overview first for the shape of things, then keep the API reference open while you build.
Build against a test network before mainnet
Loop runs separate networks, and they do not share wallets or balances. Devnet and testnet are there so you can break things safely. Build and test there first, then move to mainnet once your flows behave the way you expect.
Mainnet is at cantonloop.com, testnet at testnet.cantonloop.com, and devnet at devnet.cantonloop.com. A wallet on one network does not exist on another, so you will create a separate wallet for each environment you test in.
Things worth getting right early
Reuse the same command ID when you retry an operation, so that an uncertain submission is not executed twice.
Handle the case where a user takes a long time to approve, or never approves at all.
Show the user what they are approving in your own interface as well, rather than relying only on the wallet screen.
The details on retries, idempotency and error handling are covered in Integration rules and troubleshooting.
When something is not working
Message us from this page, or write to support@fivenorth.io, and include the endpoint you called, the parameters you sent, the HTTP status code, the exact error, the command ID or transaction hash if one was generated, and roughly when it happened. That is usually enough for an engineer to trace it without going back and forth.
Never send us a private key, a password or a session token. We never need them.
If you are a user, not a builder
If something is wrong inside an app you connected to Loop, start with Using Loop with connected apps.