Skip to main content
This guide walks you through every step required to go from zero to a fully functioning integration with the Finrock API. By the end, you will have generated your credentials, created an MPC wallet, produced a deposit address, and submitted your first transaction — all using authenticated REST API calls against https://api.finrock.io.

Before you begin: add an API user

To use the Finrock API, you need an API user in your Finrock workspace. The API user is what gives your application API access, and it controls which sub-accounts your application can use.
1

Add a new user

In the Finrock dashboard, go to Users, click Add new user, and select API User.
2

Enter a title

Give the API user a name you’ll recognise, such as the name of your app or environment (for example Production backend).
3

Add your public key

Under Public Key (RSA 4096), add your public key. You have two options:
  • Generate keys on your own machine, then paste or Upload your public key. The Generate Your RSA Key Pair tab below shows how.
  • Generate keys in Finrock: click Generate and the Finrock dashboard creates the key pair for you.
4

Choose sub-accounts

Under Sub Accounts, select the sub-accounts this API user can access, such as Main Account.
5

Save and get approval

Click Save. The owner, or at least 2 admins, must approve the new API user before it can make API requests. Once approved, the API user shows as Active in your users list.
6

Copy your API key

In your users list, find the API user and click the key icon. Copy the API key using the copy button next to it. It looks like 4466c45a-7b28-4c50-a0f7-198f8d7f34c5.In the same window, you can add your server’s IP addresses under IP Whitelist so only those addresses can use this API user. See Whitelist IPs.
Create a separate API user for each environment (development, staging, production) and give each one access to only the sub-accounts it needs.
Finrock authenticates API requests using JWT tokens signed with your RSA-4096 private key. You share the public key with Finrock; your private key never leaves your infrastructure.Run the following commands to generate a 4096-bit RSA key pair:
This produces two files:
  • private_key.pem: your signing key. Store it securely and never commit it to source control. Do not share it with anyone, not even with Finrock.
  • public_key.pem: paste this key in Finrock when adding an API user.
Keep private_key.pem secret. Anyone who obtains your private key can sign API requests on your behalf. Store it in a secrets manager (AWS Secrets Manager, HashiCorp Vault, Azure Key Vault) and restrict filesystem access to the process that needs it.

Make Your First Requests

1

Create a Wallet

With your credentials ready, create your first MPC wallet by posting an asset identifier to the Create Wallet endpoint. Finrock provisions the wallet and distributes key shares across your configured MPC nodes.
Replace <JWT> with a token generated for the URI /dac/v1/wallet and the body {"asset":"BTC"}. Replace <your-api-key> with your API Key UUID.On success you receive a 200 response containing the wallet ID and asset details. Save the wallet ID — you will reference it when generating addresses and submitting transactions.
The asset value must match an entry from the supported assets list. Use the exact asset identifier string shown there, for example BTC, ETH, or SOL.
2

Generate a Deposit Address

Generate a blockchain address under your new wallet to start receiving funds. Each address can be labelled to track its purpose and optionally configured for automatic gas refills.
The label field helps you identify the address’s purpose later. Setting omnibus: false creates an isolated address dedicated to a single wallet. Set auto_refill: true if you want Finrock to automatically fund gas from your Gas Tank when this address initiates EVM transactions.The response includes the generated blockchain address string that you can share with depositors or use in your payment flows.
3

Send a Transaction

Submit an outbound transaction from your wallet using the transaction endpoint. Finrock coordinates the MPC signing ceremony across your nodes and broadcasts the signed transaction to the network.
Key fields in the transaction request:The response returns a transaction ID and initial status. Transaction signing and network broadcast happen asynchronously; use webhooks to track completion.
Set up a webhook endpoint to receive real-time notifications when your transaction status changes — from pending signature, through network broadcast, to on-chain confirmation. See the Webhooks guide to get started.

Next Steps

You have completed the core integration flow. Explore these topics to build out the rest of your integration:

Authentication Deep Dive

Understand every JWT field, see multi-language code snippets, and review security best practices.

Gas Tanks

Learn how to fund and manage gas tanks so EVM transactions always have enough gas.

AML Controls

Integrate address screening and automatic transaction blocking for compliance.

Webhooks

Subscribe to transaction and wallet events for real-time updates in your application.

Connect Claude to Finrock MCP

Building with an AI agent? Connect Claude to the Finrock MCP server to generate working integrations.