# Table of Contents - [Tradecraft Documentation Home | Tradecraft Docs](#tradecraft-documentation-home-tradecraft-docs) - [Get Started | Using Tradecraft | Tradecraft Docs](#get-started-using-tradecraft-tradecraft-docs) - [Wallet Support | Using Tradecraft | Tradecraft Docs](#wallet-support-using-tradecraft-tradecraft-docs) - [Frequently Asked Questions | Using Tradecraft | Tradecraft Docs](#frequently-asked-questions-using-tradecraft-tradecraft-docs) - [Guide: How to Provide Liquidity | Using Tradecraft | Tradecraft Docs](#guide-how-to-provide-liquidity-using-tradecraft-tradecraft-docs) - [What are Pool Addresses? | Using Tradecraft | Tradecraft Docs](#what-are-pool-addresses-using-tradecraft-tradecraft-docs) - [Guide: How to Trade | Using Tradecraft | Tradecraft Docs](#guide-how-to-trade-using-tradecraft-tradecraft-docs) - [Guide: How to Remove Liquidity | Using Tradecraft | Tradecraft Docs](#guide-how-to-remove-liquidity-using-tradecraft-tradecraft-docs) - [Change log | Changelog | Tradecraft Docs](#change-log-changelog-tradecraft-docs) - [Pools & Pool Addresses | Using Tradecraft | Tradecraft Docs](#pools-pool-addresses-using-tradecraft-tradecraft-docs) - [Security | Tradecraft Docs](#security-tradecraft-docs) - [Official Links & Channels | Support | Tradecraft Docs](#official-links-channels-support-tradecraft-docs) - [Integration | Integrations | Tradecraft Docs](#integration-integrations-tradecraft-docs) - [Guide: Wallet Trade Integration | Integrations | Tradecraft Docs](#guide-wallet-trade-integration-integrations-tradecraft-docs) - [Get Help | Support | Tradecraft Docs](#get-help-support-tradecraft-docs) - [Tradecraft API | API | Tradecraft Docs](#tradecraft-api-api-tradecraft-docs) - [Privacy Policy | Support | Tradecraft Docs](#privacy-policy-support-tradecraft-docs) - [Terms of Service | Support | Tradecraft Docs](#terms-of-service-support-tradecraft-docs) - [Changelog | API | Tradecraft Docs](#changelog-api-tradecraft-docs) - [Health | API | Tradecraft Docs](#health-api-tradecraft-docs) - [Fees | API | Tradecraft Docs](#fees-api-tradecraft-docs) - [Prices | API | Tradecraft Docs](#prices-api-tradecraft-docs) - [Pools | API | Tradecraft Docs](#pools-api-tradecraft-docs) - [Tokens | API | Tradecraft Docs](#tokens-api-tradecraft-docs) - [Models | API | Tradecraft Docs](#models-api-tradecraft-docs) - [Getting Started | Install Guide | Tradecraft Docs](#getting-started-install-guide-tradecraft-docs) - [Support | Install Guide | Tradecraft Docs](#support-install-guide-tradecraft-docs) - [Quotes | API | Tradecraft Docs](#quotes-api-tradecraft-docs) - [Technical Requirements | Install Guide | Tradecraft Docs](#technical-requirements-install-guide-tradecraft-docs) - [Activate Tradecraft | Install Guide | Tradecraft Docs](#activate-tradecraft-install-guide-tradecraft-docs) - [Container Initialization | Install Guide | Tradecraft Docs](#container-initialization-install-guide-tradecraft-docs) - [Authentication | Install Guide | Tradecraft Docs](#authentication-install-guide-tradecraft-docs) - [Whitelist URLs | Install Guide | Tradecraft Docs](#whitelist-urls-install-guide-tradecraft-docs) - [Upload .dars | Install Guide | Tradecraft Docs](#upload-dars-install-guide-tradecraft-docs) - [Keycloak | Install Guide | Tradecraft Docs](#keycloak-install-guide-tradecraft-docs) - [auth0 | Install Guide | Tradecraft Docs](#auth0-install-guide-tradecraft-docs) - [Liquidity | API | Tradecraft Docs](#liquidity-api-tradecraft-docs) - [Docker | Install Guide | Tradecraft Docs](#docker-install-guide-tradecraft-docs) - [Kubernetes | Install Guide | Tradecraft Docs](#kubernetes-install-guide-tradecraft-docs) - [Security | Tradecraft Docs](#security-tradecraft-docs) --- # Tradecraft Documentation Home | Tradecraft Docs GitBook AssistantAskchevron-down [hashtag](https://docs.tradecraft.fi/#pool-and-trade-on-canton) Pool and trade on Canton. ---------------------------------------------------------------------------------------------- [](https://docs.tradecraft.fi/using-tradecraft/) #### [hashtag](https://docs.tradecraft.fi/#undefined) sailboat **Use the Exchange** Trade and provide liquidity. Most wallets supported. [](https://docs.tradecraft.fi/integrations/) #### [hashtag](https://docs.tradecraft.fi/#undefined-1) object-union **Integrate** Enable trading and liquidity operations in your apps. [](https://docs.tradecraft.fi/app-documentation/) #### [hashtag](https://docs.tradecraft.fi/#undefined-2) browser **Validator App** P2P trading for Validators using the Tradecraft app. [hashtag](https://docs.tradecraft.fi/#join-a-growing-community) Join a growing community --------------------------------------------------------------------------------------------- News, support, partnerships. #### [hashtag](https://docs.tradecraft.fi/#undefined-3) x-twitter **X.com** Follow us on X for the latest news. [x.com/tradecraftfiarrow-up-right](https://x.com/tradecraftfi) #### [hashtag](https://docs.tradecraft.fi/#undefined-4) envelope **Partnerships** Token issuers, liquidity providers, wallet builders. Email [info@tradecraft.fienvelope](mailto:info@tradecraft.fi) Last updated 2 months ago Was this helpful? --- # Get Started | Using Tradecraft | Tradecraft Docs Canton ecosystem wallets are not dApp enabled (yet), but we have a solution – Pool Addresses. * check Non-custody. * check Atomic. 1 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft#use-a-supported-wallet) wallet Use a supported wallet. Interact from any wallet that supports CIP-56 tokens. Check [Wallet Support](https://docs.tradecraft.fi/using-tradecraft/wallet-support) (up next). 2 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft#get-the-address) paste Get the Address. Browse [Pools & Pool Addresses](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) and select the pool and Address to manage liquidity or trade. 3 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft#send-and-receive) arrow-right-arrow-left Send & receive. Offer tokens to the Pool Address, receive your return tokens atomically back to your wallet. Learn more – [What are Pool Addresses?](https://docs.tradecraft.fi/using-tradecraft/what-are-pool-addresses) circle-info [hashtag](https://docs.tradecraft.fi/using-tradecraft#how-is-this-non-custody) How is this non-custody? ------------------------------------------------------------------------------------------------------------ When you send tokens on Canton the recipient must accept the offer before the tokens leave your wallet. When a Pool Address sees your transfer offer it will accept the offer, perform the operation (trade/manage liquidity), and return the correct tokens _atomically_, meaning the operation succeeds in whole, or else it is reversed. If it succeeds, you have your returned tokens. If it fails, your transfer offer remains in place (and your tokens remain in your wallet) until expiration when the tokens will automatically return to your available balance. [NextWallet Supportchevron-right](https://docs.tradecraft.fi/using-tradecraft/wallet-support) Last updated 2 months ago Was this helpful? --- # Wallet Support | Using Tradecraft | Tradecraft Docs Tradecraft can be used from any wallet that supports CIP-56 tokens. circle-info On Canton Network you will always have to accept incoming transfers of CIP-56 tokens manually. After you interact with a Pool Address, check your wallet's notifications or incoming transactions list to accept the traded tokens. Wallet CIP-56 Token Support Website Notes Loop check Full Support [cantonloop.comarrow-up-right](https://cantonloop.com/) Must accept incoming transfers manually. Cansai check Full Support [cansai.apparrow-up-right](https://cansai.app/) Must accept incoming transfers manually. Bron check Full Support [bron.orgarrow-up-right](https://bron.org/) Must accept incoming transfers manually. [https://support.bron.org/en/articles/11071119-depositing-cryptoarrow-up-right](https://support.bron.org/en/articles/11071119-depositing-crypto) Dfns check Full Support [www.dfns.coarrow-up-right](https://www.dfns.co/) Must accept incoming transfers manually. Console circle-half-stroke Partial Support [consolewallet.ioarrow-up-right](https://consolewallet.io/) Tokens must be whitelisted by Console Wallet before they will appear in the wallet. Check their website for a list of supported tokens. Tradecraft LP tokens will not appear in the wallet – do not add liquidity using Console wallet. HandlPay circle-half-stroke Partial Support [handlpay.comarrow-up-right](https://handlpay.com/) Tokens must be whitelisted by HandlPay Wallet before they will appear in the wallet. Check their website for a list of supported tokens. Tradecraft LP tokens will not appear in the wallet – do not add liquidity using HandlPay wallet. [PreviousGet Startedchevron-left](https://docs.tradecraft.fi/using-tradecraft) [NextPools & Pool Addresseschevron-right](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) Last updated 1 month ago Was this helpful? --- # Frequently Asked Questions | Using Tradecraft | Tradecraft Docs ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#having-trouble-we-offer-white-glove-support) Having trouble? We offer white glove support. Email [info@tradecraft.fienvelope](mailto:info@tradecraft.fi) to connect. ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#sending-tokens-sounds-scary-how-am-i-protected) Sending tokens sounds scary, how am I protected? The most important question. The Canton Network is not like most networks where transfers are irrevocable. Instead, when transferring assets on Canton you are really creating a transfer _proposal_. Transfer proposals lock funds so they are ready for transfer, but until the recipient accepts the transfer the tokens stay in your wallet. Our Transfer proposals automatically expire after a configurable period of time (set by your wallet) and the funds returned to your _available_ balance, having never left your wallet. Additionally, if your wallet allows, you may revoke transfer proposals at any time before the recipient has accepted. If you "send" (transfer proposal) tokens to a Magic Address and do not promptly get the expected return, you can revoke the offer (if supported by your wallet) or wait for it to automatically expire. chevron-rightWhat happens if I make a transfer, but your system is down?[hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#what-happens-if-i-make-a-transfer-but-your-system-is-down) We take extra precautions via monitoring and redundancy to ensure our systems are always online, however, unexpected events can still occur. If our system is down or taking too long to execute, and if your wallet supports it, you may revoke the transfer proposals to cancel the operation. Alternatively, wait for the transfer proposal to expire automatically. chevron-rightI sent an asset/token to the wrong address[hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#i-sent-an-asset-token-to-the-wrong-address) If you send tokens to a Pool Address for a pool that does not use that token, Tradecraft will automatically reject your transfer proposal and the funds should once more appear in your available balance. chevron-rightAdding Liquidity: I sent one asset before deciding not to pool, how do I get my asset back?[hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#adding-liquidity-i-sent-one-asset-before-deciding-not-to-pool-how-do-i-get-my-asset-back) You may revoke the transfer proposal for the first asset you sent, or wait for it to expire automatically. chevron-rightAdding Liquidity: What happens if I send the wrong amount of either token?[hashtag](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions#adding-liquidity-what-happens-if-i-send-the-wrong-amount-of-either-token) If you send too much or too little of either token to the Pool Address, Tradecraft will calculate the remainder of either token and send it back to you, after adding both tokens in the correct ratio to the pool. You'll need to send both tokens before Tradecraft can calculate any remaining amount to be returned, and pool the rest. [PreviousGuide: How to Remove Liquiditychevron-left](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity) Last updated 2 months ago Was this helpful? --- # Guide: How to Provide Liquidity | Using Tradecraft | Tradecraft Docs Providing liquidity to Tradecraft pools allows you to earn a portion of trading fees that are generated from all trading activity on that pool. You can check current pool APRs (based on activity from the last 24 hours) at [tradecraft.fi/poolsarrow-up-right](https://tradecraft.fi/pools) . 1 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity#use-a-supported-wallet) Use a supported wallet. See [Wallet Support](https://docs.tradecraft.fi/using-tradecraft/wallet-support) for a full list. 2 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity#decide-token-amounts-to-pool) Decide token amounts to pool. When providing liquidity to a pool, you'll need to deposit both assets in roughly the same amount (in USD value) to the pool. Visit [tradecraft.fi/poolsarrow-up-right](https://tradecraft.fi/pools) and click "Add Liquidity" ("+" on mobile) for the pool you'd like to provide liquidity to. You'll see the interface below: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F245518999-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FdF47DwfCAGYAD1QW2BrD%252Fuploads%252F1uq84byZeBtjbDQmswG8%252FScreenshot%25202026-01-29%2520at%25204.44.44%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D73349967-2794-4366-a62d-97abacf243e3&width=768&dpr=3&quality=100&sign=ebb6c8b9&sv=2) Enter an amount of either token to pool and the interface will show you how much of the other token you will need to match that contribution, and also an estimate\* of how many Liquidity Provider (LP) tokens you will receive as a receipt to represent your share of the pools assets. If you only have one of the two tokens in your wallet, you can use Tradecraft to trade some of your holdings for the token you're missing ([Guide: How to Trade](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade) ). Adjust the amounts of the two tokens to be deposited until they match the total amount you'd like to contribute. circle-exclamation **\*Important** Amounts shown are not a guaranteed promise of return. Factors like protocol use and market movements, among others, may result in receiving a different number of tokens than the shown estimate. 3 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity#send-and-receive) Send & receive. From your wallet, offer a transfer of both tokens to the Liquidity Address shown in the interface. circle-info **Excess Tokens** If you send too many or too few of either token, Tradecraft will accept the amounts available in the correct ratio, and automatically return the rest to you along with the LP tokens. In less than a minute you should receive a return offer of LP tokens, named "TC `SYMBOL`/`SYMBOL` LP". In most wallets you will need to manually accept the incoming transfer. The LP tokens represent your share of the liquidity pool. To remove your liquidity, send the LP tokens back to the same Liquidity Address. This will initiate the return of your share of the pool's underlying tokens. Again, remember to accept the incoming transfer offer of the two tokens. Questions? Check out our [Frequently Asked Questions](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions) page. [PreviousGuide: How to Tradechevron-left](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade) [NextGuide: How to Remove Liquiditychevron-right](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity) Last updated 2 months ago Was this helpful? --- # What are Pool Addresses? | Using Tradecraft | Tradecraft Docs Pool Addresses provide a way to interact with the Tradecraft exchange from your wallet without running a Validator Node and without browser extension wallets that are able to connect to web applications (as none yet exist for the Canton ecosystem). For each Tradecraft pool we've set up Party IDs that monitor incoming transfer offers and perform specific actions when received. Each action results in a transfer offer back to the user – a swapped asset (trade), LP tokens (add liquidity), or both assets in a pool (remove liquidity). With Canton Network's transfer proposal feature, assets are safe in your wallet until Tradecraft atomically swaps them, guaranteeing a successful transaction with returned output. This allows Tradecraft to be used from any wallet that supports CIP-56 tokens (see [Wallet Support](https://docs.tradecraft.fi/using-tradecraft/wallet-support) ). [PreviousPools & Pool Addresseschevron-left](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) [NextGuide: How to Tradechevron-right](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade) Last updated 2 months ago Was this helpful? --- # Guide: How to Trade | Using Tradecraft | Tradecraft Docs 1 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade#use-a-supported-wallet) Use a supported wallet. See [Wallet Support](https://docs.tradecraft.fi/using-tradecraft/wallet-support) for a full list. 2 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade#get-a-price-estimate) Get a price estimate. Visit [tradecraft.fiarrow-up-right](https://tradecraft.fi/) and use the trading interface to get an estimate\* for your trade, selecting the two tokens you'd like to trade, and entering the amount you'd like to trade: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F245518999-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FdF47DwfCAGYAD1QW2BrD%252Fuploads%252FoCgV7q6Kkk8vPCD00OJo%252FScreenshot%25202026-01-29%2520at%252011.29.19%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3Da76f6f90-53c6-41ca-a70b-4d7edce525a4&width=768&dpr=3&quality=100&sign=7e77f570&sv=2) circle-exclamation **\*Important** Amounts shown are not a guaranteed promise of return. Factors like protocol use and market movements, among others, may result in receiving a different number of tokens than the shown estimate. 3 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade#send-and-receive) Send & receive. Click "Next" to see the Trading Address used for this trade: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F245518999-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FdF47DwfCAGYAD1QW2BrD%252Fuploads%252FFN95qRleQL90BbPDeQhk%252FScreenshot%25202026-01-29%2520at%252011.29.27%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3D82d0fa92-323c-401d-85e2-b7879227e62f&width=768&dpr=3&quality=100&sign=3c45c02&sv=2) Any trade between the two tokens you selected in the trading interface can be completed by sending either of the tokens to the displayed Trading Address. For example, the same Tradecraft Pool Address can be used to trade from CC to CBTC, or from CBTC to CC. From your supported wallet, send a transfer offer of the tokens you'd like to trade to the Trading Address. In less than a minute you should receive a return offer of the other token. In most wallets you will need to manually accept the incoming transfer, unless the incoming token is CC. Questions? Check out our [Frequently Asked Questions](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions) page. [PreviousWhat are Pool Addresses?chevron-left](https://docs.tradecraft.fi/using-tradecraft/what-are-pool-addresses) [NextGuide: How to Provide Liquiditychevron-right](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity) Last updated 2 months ago Was this helpful? --- # Guide: How to Remove Liquidity | Using Tradecraft | Tradecraft Docs 1 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity#use-a-supported-wallet) Use a supported wallet. See [Wallet Support](https://docs.tradecraft.fi/using-tradecraft/wallet-support) for a full list. 2 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity#get-the-correct-pool-address) Get the correct Pool Address. Go to [Pools & Pool Addresses](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) and copy the "Add/Remove Liquidity" address listed for the pool you'd like to use. 3 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity#get-returned-tokens-quote-optional) Get returned tokens quote (optional). Go to the [Liquidity](https://docs.tradecraft.fi/api/routes/liquidity) page and click "Test it" for the "Get LP withdrawal quote" API. Enter the pool's two token symbols in the space for `tokenA` and `tokenB`. Enter the number of LP tokens you'd like to exchange in `lpTokenAmount` and press "Send". The output will show you how many of each of the pool's tokens are _currently expected\*_ in return for the LP tokens. circle-info **\*Imporant** Quoted amounts are not a guaranteed promise of return. Factors like protocol use, among others, may result in receiving a different number of tokens than quoted. 4 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity#send-lp-tokens-to-the-pool-address-and-receive-asset-tokens) Send LP tokens to the Pool Address & receive asset tokens. From your wallet, send the LP tokens to the Pool Address from step 2. In less than a minute you should receive transfer offers for both of the pool's tokens. Remember to approve the incoming transfers. Questions? Check out our [Frequently Asked Questions](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions) page. [PreviousGuide: How to Provide Liquiditychevron-left](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity) [NextFrequently Asked Questionschevron-right](https://docs.tradecraft.fi/using-tradecraft/frequently-asked-questions) Last updated 2 months ago Was this helpful? --- # Change log | Changelog | Tradecraft Docs [hashtag](https://docs.tradecraft.fi/app-changelog#v0.0.16) v0.0.16 ------------------------------------------------------------------------ circle-info Configuration files have changed parameter names, and one parameter has been removed. See details below. New image versions: **0.0.16** (for both `tradecraft` and `tradecraft-ui`) New .dar file: [https://s3.us-east-2.amazonaws.com/tradecraft.dar/tradecraft-0.0.16.dararrow-up-right](https://s3.us-east-2.amazonaws.com/tradecraft.dar/tradecraft-0.0.16.dar) #### [hashtag](https://docs.tradecraft.fi/app-changelog#configuration-file-changes) Configuration File Changes: * The repository containing sample configuration files has been renamed and now lives at: [https://gitlab.com/obsidian.systems/tradecraft-docsarrow-up-right](https://gitlab.com/obsidian.systems/tradecraft-docs) * Any text matching 'cantonswap' or 'canton-swap' has been replaced with 'tradecraft' (all appearances were/are lowercase). You can migrate easily by doing a find and replace including all the configuration files. * `"annual_usage_fee"` parameter in `tradecraft-config.yaml` is no longer needed, as the app is now free. #### [hashtag](https://docs.tradecraft.fi/app-changelog#feature-changes) Feature Changes: * Turned off all subscription fee logic and subscription fee locks. Tradecraft is now free to use. * Rebranded from CantonSwap to Tradecraft ([tradecraft.fiarrow-up-right](https://tradecraft.fi/) ). * * * [hashtag](https://docs.tradecraft.fi/app-changelog#v0.0.15) v0.0.15 ------------------------------------------------------------------------ New image version: **0.0.15** (for both `canton-swap` and `canton-swap-ui`) New .dar version: **0.0.11** #### [hashtag](https://docs.tradecraft.fi/app-changelog#changes) Changes: * Fixed: All listed tokens are now unblocked for trading. * We've fixed a range of errors that would pop up when performing trades. * * * [hashtag](https://docs.tradecraft.fi/app-changelog#v0.0.14.1) v0.0.14.1 ---------------------------------------------------------------------------- New image version: **0.0.14.1** (for both `canton-swap` and `canton-swap-ui`) New .dar version: **0.0.10** #### [hashtag](https://docs.tradecraft.fi/app-changelog#changes-1) Changes: * New: Accelerated Liveness Rewards: ~30 day delay~ _7 day delay_ * Prior to 0.0.14 Liveness Rewards were delivered 30 days after each respective license payment was made. With 0.0.14 we are now delivering Liveness Rewards just _7 days later._ * _Note:_ reward deposits may start and stop irregularly for your node and at times you may see many deposits over a short period of time as our venue node processes thousands of license payments that are now newly eligible for rewards across 50+ nodes. * Fixed: High traffic use during venue participant outages. * * * [hashtag](https://docs.tradecraft.fi/app-changelog#v0.0.13) v0.0.13 ------------------------------------------------------------------------ New image version: **0.0.13** (for both `canton-swap` and `canton-swap-ui`) New .dar version: **0.0.9** #### [hashtag](https://docs.tradecraft.fi/app-changelog#changes-2) Changes: * Liveness Rewards implemented ([delivery details & morearrow-up-right](https://cantonswap.gitbook.io/cantonswap-docs/onboarding/rewards) ) * Addresses a _Canton Network_ stability issue that caused license payments to fail randomly * Fixes the issue addressed [in this threadarrow-up-right](https://obsidiansystems.slack.com/archives/C09BPFZD18D/p1760018037785599) that was blocking general trading. * _We have also made changes to the way our billing works._ We previously made debits every 10 minutes from the 'cantonswap' account, and if there were no funds in that account we would simply wait until more funds were deposited and begin processing 1 payment each 10 minutes. With 0.0.13 when CantonSwap is run on a node it will issue a Liveness marker every 10 minutes, regardless of the 'cantonswap' account balance. Each liveness marker is then billed for payment, so a backlog of bills may accrue if there is 0 balance in the 'cantonswap' account. When funds are deposited, all past bills will be processed and charged. This means: * In order to deactivate CantonSwap you must uninstall the .dar file from your node. No longer does defunding the 'cantonswap' account deactivate the app. * You can now earn rewards for any period of time that your account runs out of CC by simply depositing more CC. The system will process payments for the unpaid period of time, and those payments will be eligible for Liveness Rewards. * Our billing practice more closely aligns with our Master Service Agreement. * * * [hashtag](https://docs.tradecraft.fi/app-changelog#v0.0.10) v0.0.10 ------------------------------------------------------------------------ New image version: **0.0.10** (for both `canton-swap` and `canton-swap-ui`) #### [hashtag](https://docs.tradecraft.fi/app-changelog#changes-3) Changes: * A brand new and much improved UI. * Improvements to make it easier for CantonSwap to enable other tokens for trading as they become avilable. * Automatic approval for transfers to the cantonswap user to make getting setup and funding the usage fee account easier. * Bug fixes around preapprovals. * Better overall performance for swapping and running the app. Last updated 17 days ago Was this helpful? This site uses cookies to deliver its service and to analyze traffic. By browsing this site, you accept the [privacy policy](https://docs.tradecraft.fi/tradecraft/privacy-policy) . close AcceptReject --- # Pools & Pool Addresses | Using Tradecraft | Tradecraft Docs [Guide: How to Trade](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-trade) [Guide: How to Provide Liquidity](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-provide-liquidity) [Guide: How to Remove Liquidity](https://docs.tradecraft.fi/using-tradecraft/guide-how-to-remove-liquidity) ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses#cc-usdcx-live) CC/USDCx • LIVE arrow-right-arrow-left **Swapping Address:** Copy tc-swp_CC-USDCx::122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7 inbox-in inbox-out **Add/Remove Liquidity Address:** Copy tc-liq_CC-USDCx::122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7 ### [hashtag](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses#cbtc-cc-live) CBTC/CC • LIVE arrow-right-arrow-left **Swapping Address:** Copy tc-swp_CBTC-CC::122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7 inbox-in inbox-out **Add/Remove Liquidity Address:** Copy tc-liq_CBTC-CC::122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7 [PreviousWallet Supportchevron-left](https://docs.tradecraft.fi/using-tradecraft/wallet-support) [NextWhat are Pool Addresses?chevron-right](https://docs.tradecraft.fi/using-tradecraft/what-are-pool-addresses) Last updated 2 months ago Was this helpful? * [CC/USDCx • LIVE](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses#cc-usdcx-live) * [CBTC/CC • LIVE](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses#cbtc-cc-live) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Security | Tradecraft Docs [hashtag](https://docs.tradecraft.fi/security#audits) Audits ----------------------------------------------------------------- January 14, 2026 [hashtag](https://docs.tradecraft.fi/security#amm-exchange) AMM Exchange ----------------------------------------------------------------------------- Tradecraft and [Halbornarrow-up-right](https://www.halborn.com/) have completed an audit of all DAML contracts for the AMM decentralized exchange. check All issues addressed. [https://www.halborn.com/audits/obsidian/tradecraft-amm-1e29e9arrow-up-right](https://www.halborn.com/audits/obsidian/tradecraft-amm-1e29e9) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Official Links & Channels | Support | Tradecraft Docs **Our only channels and accounts are the ones listed here:** * Website: [tradecraft.fiarrow-up-right](https://tradecraft.fi/) * Documentation: [docs.tradecraft.fiarrow-up-right](https://docs.tradecraft.fi/) * Support: [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#fd8e888d8d928f89bd898f9c99989e8f9c9b89d39b94) (our only support channel) * X: [https://x.com/tradecraftfiarrow-up-right](https://x.com/tradecraftfi) * Auxiliary dashboard: [https://www.memora.systems/dashboard/poolsarrow-up-right](https://www.memora.systems/dashboard/pools) We do not have any Telegram, Discord or other groups. **Partnerships** We are glad to connect for liquidity, product or marketing opportunities. Please note we do not engage solicitations for community moderators, community promotions, or social media promotions (X posts, Telegram posts, etc). [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#8bfbeaf9ffe5eef9f8e3e2fbf8cbfff9eaefeee8f9eaedffa5ede2) [NextGet Helpchevron-right](https://docs.tradecraft.fi/support/get-help) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Integration | Integrations | Tradecraft Docs Tradecraft is a permissionless exchange, fully open for integration by wallets and other dapps. Integrate swaps and liquidity operations directly into your apps using Tradecraft Pool Addresses ([Pools & Pool Addresses](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) ) and our web [API](https://docs.tradecraft.fi/api/) . We plan to offer a protocol level API in the near future. Our first guide has been published showing how to enable trading within your app. More guides to follow. ### [hashtag](https://docs.tradecraft.fi/integrations#browser-extension-wallet-connect-integration) Browser Extension Wallet Connect Integration If you are the developer of a browser extension wallet that has enabled wallet-connect functionality, or similar, contact us so we can integrate your wallet on [tradecraft.fiarrow-up-right](https://tradecraft.fi/) . Email [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#3b52555d547b4f495a5f5e58495a5d4f155d52) . [NextGuide: Wallet Trade Integrationchevron-right](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Guide: Wallet Trade Integration | Integrations | Tradecraft Docs [hashtag](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#token-support) Token Support --------------------------------------------------------------------------------------------------------------------------------------- If your wallet fully supports CIP-56 tokens you can freely integrate all Tradecraft pools for trading, along with add and remove liquidity options (which return CIP-56 compliant Tradecraft LP tokens). If your wallet supports only a whitelist of Canton tokens you will need to manually limit your interface to only allow trading of your wallet's supported tokens. [hashtag](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#pools-api) Pools API ------------------------------------------------------------------------------------------------------------------------------- To build a trading interface that supports all pools listed on Tradecraft, start by using the [GET /pools](https://docs.tradecraft.fi/api/routes/pools#get-pools) API to fetch a list of all pools. Note that multi-hop trades are not yet supported. To get a list of tradable token pairs for a given token, run a reduce function on the list of pools and construct a mapping of each unique token to a list of other tokens. Every time a token appears in a pool entry, add it's paired token to its list of tradable tokens. With the two pools we have online now, your output would look like this: Copy const tradableTokens = { 'CC': ['USDCx', 'CBTC'], 'USDCx': ['CC'], 'CBTC': ['CC'] } Now you can create a widget with token drop-downs similar to a standard swap widget that looks something like the below image. Each entry in `tradableTokens` can be added to the first drop-down, and the second drop-down can be populated with the array value for that token. ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2Fu22wPaJ4JRf27sENGE1r%2Fblobs%2FtxMBqulGxKYE2H6HAs1K%2FScreenshot%25202026-01-29%2520at%252011.29.19%25E2%2580%25AFAM.png&width=768&dpr=3&quality=100&sign=81305778&sv=2) [hashtag](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#quote-api) Quote API ------------------------------------------------------------------------------------------------------------------------------- circle-exclamation **Important** While the API is currently named "quote", these quotes should be presented to users as _estimates_. Since the on-chain portion of a trade is only initiated after the user sends funds and after Tradecraft gets to their order and begins execution, the price returned from the quote API may not be the price the user receives. A solution for this is in progress. There are two API's for getting trade quotes–one to specify amount in, and one to specify amount out. Use either or both as your interface requires. For example in the widget above, the API for amount in would be used when the user types in the first input, showing response in the second, and when the user types in the second input, the response would be shown in the first input. Both APIs can be found on the [Quotes](https://docs.tradecraft.fi/api/routes/quotes) API page. [hashtag](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#trade-addresses) Trade Addresses ------------------------------------------------------------------------------------------------------------------------------------------- The official source of Tradecraft Pool Addresses can be found on our [Pools & Pool Addresses](https://docs.tradecraft.fi/using-tradecraft/pools-and-pool-addresses) page. You will need to create a mapping from the user's selected tokens to get the correct Pool Address. Depending on your chosen interface, you may either present the Pool Address to the user, or obscure these inner workings and send the tokens behind the scenes. Note that with the later option, the user will still need to manually accept incoming CIP-56 tokens (excluding CC), unless you have built a custom automation to accept those transfers. [PreviousIntegrationchevron-left](https://docs.tradecraft.fi/integrations) Last updated 2 months ago Was this helpful? * [Token Support](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#token-support) * [Pools API](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#pools-api) * [Quote API](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#quote-api) * [Trade Addresses](https://docs.tradecraft.fi/integrations/integrate-tradecraft/guide-wallet-trade-integration#trade-addresses) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Help | Support | Tradecraft Docs We are available to help if you are having trouble with a transaction or have questions about how to use Tradecraft. **Support Availability Schedule** Our support team is online during the following times: * 9am - 5pm Monday through Friday, US Eastern time. * Excluding US holidays. Depending on the time your request was received it may take up to 72 hours to receive a response due to weekends and holidays. Email: [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#e794929797889593a793958683828495868193c9818e) Copy [email protected] circle-info **Our only support channel is our official support email address.** Accounts offering support on X, Telegram, or elsewhere are not us. Be wary of scams. We will never ask you to send us funds or to reveal your seed phrases. [PreviousOfficial Links & Channelschevron-left](https://docs.tradecraft.fi/support) [NextTerms of Servicechevron-right](https://docs.tradecraft.fi/support/legal/terms-of-service) Last updated 27 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Tradecraft API | API | Tradecraft Docs The Tradecraft API is open for public use. Contact [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#472e292128073335262322243526213369212e) for support. [NextChangelogchevron-right](https://docs.tradecraft.fi/api/changelog) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Privacy Policy | Support | Tradecraft Docs This Privacy Policy describes how Obsidian Software LLC ("Obsidian," "we," "us," or "our") collects, uses, and shares information in connection with your use of the Tradecraft website located at https://tradecraft.fi (the "Website"), the Tradecraft web application, and any other software, tools, features, or functionalities provided by Obsidian in connection therewith (collectively, the "Interface"). This Privacy Policy also describes your rights and choices regarding your information. By accessing or using the Interface, you acknowledge that you have read and understood this Privacy Policy. If you do not agree with this Privacy Policy, please do not access or use the Interface. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.-information-we-collect) 1\. INFORMATION WE COLLECT ------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.1-information-you-provide-to-us) 1.1 Information You Provide to Us **Email Addresses.** If you subscribe to our email newsletter, we collect the email address you provide through the subscription form on the Website. We do not require any other personal information to subscribe to the newsletter. **Communications.** If you contact us directly, such as by sending an email to our contact address, we may receive and retain the contents of your message, your email address, and any other information you choose to provide. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.2-information-collected-automatically) 1.2 Information Collected Automatically When you access or use the Interface, we may automatically collect certain information, including: **Device and Browser Information.** We may collect information about the device and browser you use to access the Interface, such as your device type, operating system, browser type and version, language preferences, and screen resolution. **Log and Usage Data.** We may collect information about your interactions with the Interface, including the pages or features you access, the time and date of your visits, the time spent on pages, and other diagnostic data. **IP Address.** We may collect your Internet Protocol (IP) address when you access the Interface. Your IP address may be used to approximate your general geographic location. **Cookies and Similar Technologies.** We use cookies and similar tracking technologies to collect information about your interactions with the Interface. See Section 5 below for more information about our use of cookies. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.3-information-we-do-not-collect) 1.3 Information We Do Not Collect The Interface is designed to minimize personal data collection. Notably: **No Account Information.** The Interface does not require you to create an account, and we do not collect usernames, passwords, or account credentials. **No Wallet Credentials.** When you connect a digital asset wallet to the Interface, we do not collect or have access to your private keys, seed phrases, or wallet passwords. Your wallet connection is facilitated through third-party wallet software that you control. **No Financial Information.** We do not collect traditional financial information such as bank account numbers or credit card details. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.4-blockchain-information) 1.4 Blockchain Information When you conduct transactions through the Interface, those transactions occur on the Canton Network blockchain. Blockchain transactions are recorded on a distributed ledger and may be visible to network participants in accordance with the Canton Network's privacy architecture. Obsidian does not control the Canton Network and is not responsible for the information recorded on or accessible through the blockchain. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-2.-how-we-use-your-information) 2\. HOW WE USE YOUR INFORMATION ----------------------------------------------------------------------------------------------------------------------------------------- We use the information we collect for the following purposes: **To Provide and Maintain the Interface.** We use automatically collected information to operate, maintain, and improve the functionality and performance of the Interface. **To Send Newsletters and Communications.** If you subscribe to our email newsletter, we use your email address to send you newsletters, updates, and other communications about Tradecraft. You may unsubscribe from these communications at any time. **To Respond to Inquiries.** We use contact information you provide to respond to your questions, comments, or requests. **To Analyze and Improve.** We use automatically collected information to analyze usage patterns, diagnose technical issues, and improve the Interface. **To Ensure Security.** We use information to detect, prevent, and address fraud, abuse, security risks, and technical issues. **To Comply with Legal Obligations.** We may use information as necessary to comply with applicable laws, regulations, legal processes, or governmental requests. **To Enforce Our Terms.** We may use information to enforce our Terms of Service and other agreements. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-3.-how-we-share-your-information) 3\. HOW WE SHARE YOUR INFORMATION --------------------------------------------------------------------------------------------------------------------------------------------- We may share your information in the following circumstances: **Service Providers.** We share information with third-party service providers who perform services on our behalf, such as email marketing platforms, analytics providers, hosting and infrastructure providers, and security services. These service providers are contractually obligated to use your information only for the purposes of providing services to us and in accordance with this Privacy Policy. Our service providers are subject to change and may operate in various locations. **Marketing Services.** We use third-party marketing and email campaign services, including ActiveCampaign, to manage our email newsletter and communications. When you subscribe to our newsletter, your email address is shared with these service providers to facilitate the delivery of our communications. **Legal Requirements.** We may disclose your information if required to do so by law or in response to valid requests by public authorities, such as a court order, subpoena, or government investigation. **Protection of Rights.** We may disclose your information where we believe it is necessary to investigate, prevent, or take action regarding potential violations of our Terms of Service, suspected fraud, situations involving potential threats to the safety of any person, or as evidence in litigation in which we are involved. **Business Transfers.** If Obsidian is involved in a merger, acquisition, reorganization, bankruptcy, or sale of assets, your information may be transferred as part of that transaction. We will provide notice if your information becomes subject to a different privacy policy. **With Your Consent.** We may share your information with third parties when you have given us your consent to do so. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-4.-international-data-transfers) 4\. INTERNATIONAL DATA TRANSFERS ------------------------------------------------------------------------------------------------------------------------------------------- Obsidian is based in Puerto Rico. If you access the Interface from outside Puerto Rico or the United States, please be aware that your information may be transferred to, stored, and processed in Puerto Rico, the United States, or other jurisdictions where our service providers operate. These jurisdictions may have data protection laws that differ from those in your country. By using the Interface or providing your information to us, you consent to the transfer, storage, and processing of your information in jurisdictions that may have different data protection standards than your home jurisdiction. For users in the European Union or European Economic Area, we rely on appropriate safeguards for international data transfers, including standard contractual clauses, adequacy decisions, and data privacy frameworks, as applicable to our service providers. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.-cookies-and-similar-technologies) 5\. COOKIES AND SIMILAR TECHNOLOGIES --------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.1-what-are-cookies) 5.1 What Are Cookies Cookies are small text files that are stored on your device when you visit a website. Cookies allow websites to recognize your device and remember certain information about your visit. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.2-how-we-use-cookies) 5.2 How We Use Cookies We use cookies and similar technologies for the following purposes: **Necessary Cookies.** These cookies are essential for the operation of the Interface and enable core functionality such as security, network management, and accessibility. You cannot opt out of necessary cookies as the Interface cannot function properly without them. **Functional Cookies.** These cookies enable enhanced functionality and personalization, such as remembering your preferences and settings. If you disable functional cookies, some features of the Interface may not work as intended. **Analytics Cookies.** These cookies help us understand how visitors interact with the Interface by collecting and reporting information about usage patterns. Analytics cookies help us improve the Interface by understanding which pages and features are most popular and how users navigate through the site. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.3-future-technologies) 5.3 Future Technologies We may implement additional tracking technologies in the future to improve the Interface and our services. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-6.-data-retention) 6\. DATA RETENTION --------------------------------------------------------------------------------------------------------------- We retain your information for as long as necessary to fulfill the purposes described in this Privacy Policy, unless a longer retention period is required or permitted by law. **Newsletter Subscriptions.** We retain your email address for as long as you remain subscribed to our newsletter. If you unsubscribe, we will delete your email address within a reasonable period, unless we are required by law to retain it or have another lawful basis for retention. **Automatically Collected Information.** We retain automatically collected information, such as log data and analytics information, for a reasonable period necessary to fulfill the purposes described in this Privacy Policy, after which it is either deleted or anonymized. **Legal Requirements.** We may retain information for longer periods if required by applicable law, regulation, or legal process, or to establish, exercise, or defend legal claims. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-7.-data-security) 7\. DATA SECURITY ------------------------------------------------------------------------------------------------------------- We implement reasonable technical and organizational measures designed to protect your information against unauthorized access, alteration, disclosure, or destruction. However, no method of transmission over the Internet or method of electronic storage is completely secure. While we strive to use commercially acceptable means to protect your information, we cannot guarantee its absolute security. You are responsible for maintaining the security of your digital asset wallet, including your private keys and seed phrases. Obsidian does not have access to your wallet credentials and cannot recover lost or stolen assets. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.-your-rights-and-choices) 8\. YOUR RIGHTS AND CHOICES --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.1-newsletter-unsubscribe) 8.1 Newsletter Unsubscribe You may unsubscribe from our email newsletter at any time by clicking the "unsubscribe" link included in each newsletter or by contacting us at the email address provided below. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.2-browser-controls) 8.2 Browser Controls You can manage cookies and similar technologies through your browser settings. ### [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.3-do-not-track) 8.3 Do Not Track Some browsers offer a "Do Not Track" feature that signals to websites that you do not wish to be tracked. The Interface does not currently respond to Do Not Track signals. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-9.-additional-rights-for-european-union-users) 9\. ADDITIONAL RIGHTS FOR EUROPEAN UNION USERS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- If you are located in the European Union or European Economic Area, you have certain additional rights under the General Data Protection Regulation ("GDPR"): **Legal Basis for Processing.** We process your personal data on the following legal bases: (a) your consent, such as when you subscribe to our newsletter; (b) our legitimate interests in operating and improving the Interface, provided those interests are not overridden by your rights; and (c) compliance with legal obligations. **Right of Access.** You have the right to request access to the personal data we hold about you and to receive a copy of that data. **Right to Rectification.** You have the right to request that we correct any inaccurate personal data we hold about you. **Right to Erasure.** You have the right to request that we delete your personal data in certain circumstances, such as when the data is no longer necessary for the purposes for which it was collected. **Right to Restriction.** You have the right to request that we restrict the processing of your personal data in certain circumstances. **Right to Data Portability.** You have the right to receive your personal data in a structured, commonly used, and machine-readable format and to transmit that data to another controller. **Right to Object.** You have the right to object to the processing of your personal data for direct marketing purposes or where processing is based on our legitimate interests. **Right to Withdraw Consent.** Where we rely on your consent to process your personal data, you have the right to withdraw your consent at any time. Withdrawal of consent does not affect the lawfulness of processing based on consent before its withdrawal. **Right to Lodge a Complaint.** You have the right to lodge a complaint with a supervisory authority in the EU member state of your habitual residence, place of work, or place of the alleged infringement. To exercise any of these rights, please contact us using the contact information provided below. We may request specific information from you to confirm your identity before responding to your request. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-10.-childrens-privacy) 10\. CHILDREN'S PRIVACY ------------------------------------------------------------------------------------------------------------------------ The Interface is not intended for use by individuals under the age of eighteen (18) or the age of legal majority in their jurisdiction, whichever is greater. We do not knowingly collect personal information from children. If we become aware that we have collected personal information from a child without verification of parental consent, we will take steps to delete that information. If you believe we may have collected information from a child, please contact us. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-11.-third-party-links-and-services) 11\. THIRD-PARTY LINKS AND SERVICES ------------------------------------------------------------------------------------------------------------------------------------------------- The Interface may contain links to third-party websites, services, or applications that are not operated by us. This Privacy Policy does not apply to third-party services, and we are not responsible for the content, privacy policies, or practices of any third-party services. We encourage you to review the privacy policies of any third-party services you access. When you connect a third-party digital asset wallet to the Interface, your use of that wallet is subject to the wallet provider's terms and privacy policy, not this Privacy Policy. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-12.-changes-to-this-privacy-policy) 12\. CHANGES TO THIS PRIVACY POLICY ------------------------------------------------------------------------------------------------------------------------------------------------- We may update this Privacy Policy from time to time to reflect changes in our practices, technologies, legal requirements, or other factors. Any changes will be effective immediately upon posting the revised Privacy Policy on the Interface with an updated "Last Updated" date. Your continued use of the Interface after we post any modifications to this Privacy Policy constitutes your acceptance of the modified Privacy Policy. We encourage you to review this Privacy Policy periodically to stay informed about how we collect, use, and protect your information. * * * [hashtag](https://docs.tradecraft.fi/support/legal/privacy-policy#id-13.-contact-us) 13\. CONTACT US --------------------------------------------------------------------------------------------------------- If you have any questions, concerns, or requests regarding this Privacy Policy or our data practices, please contact us at: **Obsidian Software LLC** Email: [\[email protected\]](https://docs.tradecraft.fi/cdn-cgi/l/email-protection) For users in the European Union, you may also contact your local data protection authority if you have concerns about our processing of your personal data. * * * **BY USING THE INTERFACE, YOU ACKNOWLEDGE THAT YOU HAVE READ AND UNDERSTOOD THIS PRIVACY POLICY.** [PreviousTerms of Servicechevron-left](https://docs.tradecraft.fi/support/legal/terms-of-service) Last updated 2 months ago Was this helpful? * [1\. INFORMATION WE COLLECT](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.-information-we-collect) * [1.1 Information You Provide to Us](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.1-information-you-provide-to-us) * [1.2 Information Collected Automatically](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.2-information-collected-automatically) * [1.3 Information We Do Not Collect](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.3-information-we-do-not-collect) * [1.4 Blockchain Information](https://docs.tradecraft.fi/support/legal/privacy-policy#id-1.4-blockchain-information) * [2\. HOW WE USE YOUR INFORMATION](https://docs.tradecraft.fi/support/legal/privacy-policy#id-2.-how-we-use-your-information) * [3\. HOW WE SHARE YOUR INFORMATION](https://docs.tradecraft.fi/support/legal/privacy-policy#id-3.-how-we-share-your-information) * [4\. INTERNATIONAL DATA TRANSFERS](https://docs.tradecraft.fi/support/legal/privacy-policy#id-4.-international-data-transfers) * [5\. COOKIES AND SIMILAR TECHNOLOGIES](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.-cookies-and-similar-technologies) * [5.1 What Are Cookies](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.1-what-are-cookies) * [5.2 How We Use Cookies](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.2-how-we-use-cookies) * [5.3 Future Technologies](https://docs.tradecraft.fi/support/legal/privacy-policy#id-5.3-future-technologies) * [6\. DATA RETENTION](https://docs.tradecraft.fi/support/legal/privacy-policy#id-6.-data-retention) * [7\. DATA SECURITY](https://docs.tradecraft.fi/support/legal/privacy-policy#id-7.-data-security) * [8\. YOUR RIGHTS AND CHOICES](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.-your-rights-and-choices) * [8.1 Newsletter Unsubscribe](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.1-newsletter-unsubscribe) * [8.2 Browser Controls](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.2-browser-controls) * [8.3 Do Not Track](https://docs.tradecraft.fi/support/legal/privacy-policy#id-8.3-do-not-track) * [9\. ADDITIONAL RIGHTS FOR EUROPEAN UNION USERS](https://docs.tradecraft.fi/support/legal/privacy-policy#id-9.-additional-rights-for-european-union-users) * [10\. CHILDREN'S PRIVACY](https://docs.tradecraft.fi/support/legal/privacy-policy#id-10.-childrens-privacy) * [11\. THIRD-PARTY LINKS AND SERVICES](https://docs.tradecraft.fi/support/legal/privacy-policy#id-11.-third-party-links-and-services) * [12\. CHANGES TO THIS PRIVACY POLICY](https://docs.tradecraft.fi/support/legal/privacy-policy#id-12.-changes-to-this-privacy-policy) * [13\. CONTACT US](https://docs.tradecraft.fi/support/legal/privacy-policy#id-13.-contact-us) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Terms of Service | Support | Tradecraft Docs These Terms of Service (the "Agreement") constitute a legally binding agreement between you ("you," "your," or "User") and Obsidian Software LLC, a Puerto Rico limited liability company ("Obsidian," "we," "us," or "our"). This Agreement governs your access to and use of the Tradecraft website located at https://tradecraft.fi (the "Website"), the Tradecraft web application, and any other software, tools, features, or functionalities provided by Obsidian in connection therewith (collectively, the "Interface"). **BY ACCESSING OR USING THE INTERFACE, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THIS AGREEMENT. IF YOU DO NOT AGREE TO THESE TERMS, YOU MUST NOT ACCESS OR USE THE INTERFACE.** * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.-the-interface-and-the-protocol) 1\. THE INTERFACE AND THE PROTOCOL ------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.1-the-interface) 1.1 The Interface The Interface is a web-hosted user interface that provides a convenient means of accessing the Tradecraft Protocol (defined below). The Interface is operated and maintained by Obsidian Software LLC. Through the Interface, users may interact with the Tradecraft Protocol to execute cryptocurrency swaps, provide liquidity to decentralized liquidity pools, and perform related functions. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.2-the-protocol) 1.2 The Protocol The "Tradecraft Protocol" refers to a set of autonomous, self-executing smart contracts deployed on the Canton Network blockchain that implement automated market maker ("AMM") functionality enabling peer-to-peer cryptocurrency swaps without the need for a centralized intermediary. The Tradecraft Protocol operates independently of the Interface and independently of Obsidian. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.3-the-interface-is-distinct-from-the-protocol) 1.3 The Interface Is Distinct from the Protocol **You expressly acknowledge and agree that the Interface and the Tradecraft Protocol are separate and distinct.** Obsidian provides the Interface as one means of accessing the Tradecraft Protocol, but Obsidian does not own, control, operate, or maintain the Tradecraft Protocol. The Tradecraft Protocol consists of autonomous smart contracts that execute automatically based on their underlying code without any intervention, control, or discretion exercised by Obsidian. Obsidian does not operate any liquidity pools, does not act as a counterparty to any transaction, and does not hold, custody, or control any user funds at any time. When you execute a swap or provide liquidity through the Interface, you are interacting directly with the Tradecraft Protocol's smart contracts on the Canton Network—not with Obsidian. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.4-third-party-protocol-access) 1.4 Third-Party Protocol Access The Tradecraft Protocol may be accessed through means other than the Interface, including through third-party interfaces, direct smart contract interaction, or other methods. Obsidian is not responsible for and makes no representations regarding any third-party means of accessing the Protocol. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.-eligibility-and-access) 2\. ELIGIBILITY AND ACCESS --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.1-age-and-capacity) 2.1 Age and Capacity You represent and warrant that you are at least eighteen (18) years of age or the age of legal majority in your jurisdiction (whichever is greater) and have the legal capacity to enter into this Agreement. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.2-authority) 2.2 Authority If you are accessing or using the Interface on behalf of a legal entity, you represent and warrant that you have the legal authority to bind that entity to this Agreement, and all references to "you" shall include that entity. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.3-compliance-with-laws) 2.3 Compliance with Laws You represent and warrant that your access to and use of the Interface complies with all applicable laws, regulations, and rules in your jurisdiction, including but not limited to laws relating to securities, commodities, money transmission, taxation, and anti-money laundering. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.4-prohibited-jurisdictions-and-persons) 2.4 Prohibited Jurisdictions and Persons You represent and warrant that you are not: (a) a citizen or resident of, or located in, a geographic area that is subject to comprehensive United States or other applicable sanctions or embargoes, including but not limited to Iran, Cuba, North Korea, Syria, Myanmar (Burma), the Crimea region of Ukraine, the so-called Donetsk People's Republic, or the so-called Luhansk People's Republic; (b) an individual or entity listed on any applicable sanctions list, including but not limited to the United States Treasury Department's Office of Foreign Assets Control ("OFAC") Specially Designated Nationals and Blocked Persons List, the United Nations Security Council Consolidated List, or the European Union Consolidated List; (c) otherwise prohibited by applicable law from accessing or using the Interface; or (d) accessing or using the Interface on behalf of any person or entity described in clauses (a) through (c). ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.5-prohibition-on-circumvention) 2.5 Prohibition on Circumvention You agree that you will not use any virtual private network ("VPN"), proxy service, or any other technology or mechanism to circumvent the geographic restrictions or eligibility requirements set forth in this Agreement. Any attempt to access the Interface through such means is a material breach of this Agreement. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.-non-custodial-nature-of-the-interface) 3\. NON-CUSTODIAL NATURE OF THE INTERFACE --------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.1-non-custodial-service) 3.1 Non-Custodial Service **The Interface is a purely non-custodial application.** Obsidian does not at any time have custody, possession, or control of your digital assets, private keys, passwords, or any other credentials associated with your digital asset wallet. You are solely responsible for the custody and security of the cryptographic private keys to any digital asset wallets you use in connection with the Interface. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.2-wallet-connection) 3.2 Wallet Connection To access and use certain features of the Interface, you must connect a compatible, non-custodial digital asset wallet. By connecting your wallet to the Interface, you authorize the Interface to interact with your wallet to the extent necessary to facilitate your requested transactions. You understand and agree that Obsidian does not operate, maintain, or have any control over any third-party wallet software you use. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.3-no-recovery-of-assets) 3.3 No Recovery of Assets Because Obsidian does not have custody or control over the contents of your wallet, Obsidian cannot retrieve, recover, freeze, transfer, or return any digital assets. If you lose access to your wallet, private keys, or seed phrase, your digital assets may become permanently inaccessible. Obsidian has no ability or obligation to assist you in recovering lost assets. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.4-transaction-responsibility) 3.4 Transaction Responsibility You are solely responsible for all transactions you initiate through the Interface. Once a transaction is broadcast to the Canton Network and confirmed by the network's validators, it is irreversible. Obsidian cannot reverse, cancel, or modify any transaction once it has been submitted. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.-magic-addresses) 4\. MAGIC ADDRESSES ------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.1-description-of-magic-addresses) 4.1 Description of Magic Addresses The Interface includes a feature known as "Magic Addresses," which allows users to send digital assets to designated Canton Network addresses controlled by Obsidian to automatically execute predefined actions. For example, a user may send Canton Coin ("CC") to a specific Magic Address associated with the CC/CBTC liquidity pool, whereupon the system will automatically swap the CC for CBTC and return the CBTC to the sending wallet address. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.2-non-custodial-execution) 4.2 Non-Custodial Execution Notwithstanding that Magic Addresses are controlled by Obsidian, the Magic Addresses feature operates on a non-custodial basis through atomically executed operations. This means that the receipt of assets, execution of the requested action, and return of assets occur within a single atomic transaction—either all steps complete successfully, or no steps complete. At no point does Obsidian hold user assets outside of the atomic transaction execution. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.3-user-responsibility-for-correct-addresses) 4.3 User Responsibility for Correct Addresses **You are solely responsible for ensuring that you send digital assets to the correct Magic Address for your intended transaction.** Sending assets to an incorrect address may result in the permanent and irrecoverable loss of your assets. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.4-no-responsibility-for-misplaced-funds) 4.4 No Responsibility for Misplaced Funds **Obsidian expressly disclaims any responsibility or liability for digital assets sent to incorrect addresses, including but not limited to assets sent to the wrong Magic Address, assets sent to Magic Addresses that do not support the sent asset type, assets sent to non-Magic addresses, or assets lost due to any other user error in specifying the recipient address.** You acknowledge and agree that any such loss is solely your responsibility. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.5-verification-requirement) 4.5 Verification Requirement Before using any Magic Address, you agree to verify the correct address for your intended transaction through the official Interface at https://tradecraft.fi. Obsidian is not responsible for losses resulting from reliance on Magic Address information obtained from any source other than the official Interface. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.6-no-guarantee-of-returned-token-amounts) 4.6 No Guarantee of Returned Token Amounts Using a Magic Address does not guarantee any specific amount of returned tokens. The actual amount of tokens you receive may differ from quotes, estimates, or pricing information displayed by the Interface, our application programming interface ("API"), or any other source of data provided by Obsidian, due to slippage, market movements, or other factors. Obtaining a quote or pricing information from any Obsidian data source does not constitute a guarantee, commitment, or promise that you will receive that amount when executing a transaction through a Magic Address. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.-prohibited-activities) 5\. PROHIBITED ACTIVITIES ------------------------------------------------------------------------------------------------------------------------------- You agree not to engage in any of the following prohibited activities in connection with your access to or use of the Interface: ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.1-illegal-activity) 5.1 Illegal Activity Using the Interface for any purpose that is unlawful or prohibited by this Agreement, or to facilitate any illegal activity including but not limited to money laundering, terrorist financing, tax evasion, fraud, or the purchase or sale of illegal goods or services. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.2-sanctions-violations) 5.2 Sanctions Violations Using the Interface in any manner that would cause Obsidian or any other person to violate any applicable sanctions laws or regulations, including OFAC regulations. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.3-manipulation) 5.3 Manipulation Engaging in any activity that manipulates, deceives, or defrauds the Interface, the Tradecraft Protocol, or any other users, including but not limited to front-running, wash trading, spoofing, layering, or other manipulative trading practices. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.4-interference) 5.4 Interference Interfering with, disrupting, or attempting to gain unauthorized access to the Interface, the servers or networks connected to the Interface, or any other user's access to or use of the Interface, including through the use of any robot, spider, scraper, or other automated means. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.5-intellectual-property-infringement) 5.5 Intellectual Property Infringement Using the Interface in any manner that infringes, misappropriates, or violates any intellectual property rights or other proprietary rights of Obsidian or any third party. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.6-harmful-code) 5.6 Harmful Code Introducing any virus, worm, Trojan horse, malware, or other harmful code or material to the Interface or using the Interface to distribute such code or material. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.7-false-information) 5.7 False Information Providing false, inaccurate, or misleading information in connection with your use of the Interface, including any misrepresentation regarding your identity, location, or eligibility to use the Interface. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.8-circumvention) 5.8 Circumvention Attempting to circumvent any security feature, access control, or usage restriction of the Interface. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.-digital-assets-and-third-party-tokens) 6\. DIGITAL ASSETS AND THIRD-PARTY TOKENS --------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.1-no-endorsement) 6.1 No Endorsement The Interface may display or facilitate transactions involving digital assets created by third parties. The availability of any digital asset on or through the Interface does not constitute an endorsement, recommendation, or approval of that asset by Obsidian. Obsidian does not investigate, verify, or guarantee the legitimacy, safety, value, or legal status of any digital asset. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.2-fraudulent-tokens) 6.2 Fraudulent Tokens **You acknowledge that anyone can create a digital asset on the Canton Network, including fraudulent or deceptive versions of existing assets or assets that falsely claim association with a project or entity.** Obsidian cannot and does not verify the authenticity of any digital asset. You are solely responsible for conducting your own due diligence before transacting in any digital asset. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.-assumption-of-risk) 7\. ASSUMPTION OF RISK ------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.1-cryptocurrency-risks) 7.1 Cryptocurrency Risks You acknowledge and agree that accessing and using the Interface involves significant risks, including but not limited to the following: **Volatility.** The prices of digital assets are highly volatile and may fluctuate significantly over short periods of time. The value of your digital assets may decrease substantially or become worthless. **Smart Contract Risk.** The Tradecraft Protocol consists of smart contracts that may contain bugs, vulnerabilities, or errors that could result in the loss of digital assets. Smart contracts may be subject to exploits, hacks, or attacks. No audit or review can guarantee that smart contracts are free from vulnerabilities. **Impermanent Loss.** If you provide liquidity to the Tradecraft Protocol, you may experience impermanent loss, which occurs when the relative prices of the assets in a liquidity pool diverge. Impermanent loss can result in receiving fewer assets upon withdrawal than you would have held by simply retaining the original assets. **Slippage.** The price at which your transaction executes may differ from the price displayed at the time you submit the transaction due to market movements, transaction ordering, or other factors. **Stablecoin Risk.** Digital assets described as "stablecoins" may not maintain their intended peg to fiat currencies or other reference assets. Stablecoins may not be fully or adequately collateralized and may experience significant price fluctuations. **Blockchain Risk.** The Canton Network and other blockchain networks may experience congestion, delays, forks, attacks, or other disruptions that could affect your transactions or the value of your digital assets. **Regulatory Risk.** The regulatory status of digital assets and decentralized finance is uncertain and evolving. Changes in laws or regulations may adversely affect the use, transfer, exchange, or value of digital assets. **Irreversibility.** Blockchain transactions are irreversible once confirmed. Errors in transaction parameters, including incorrect recipient addresses or amounts, cannot be corrected after confirmation. **Taxation.** The tax treatment of digital asset transactions is uncertain and varies by jurisdiction. You are solely responsible for determining and fulfilling your tax obligations. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.2-express-assumption-of-risk) 7.2 Express Assumption of Risk **YOU EXPRESSLY ACKNOWLEDGE, UNDERSTAND, AND AGREE THAT YOUR ACCESS TO AND USE OF THE INTERFACE IS AT YOUR SOLE RISK. YOU ASSUME FULL RESPONSIBILITY FOR ALL RISKS ASSOCIATED WITH ACCESSING AND USING THE INTERFACE AND TRANSACTING IN DIGITAL ASSETS, INCLUDING BUT NOT LIMITED TO THE RISKS DESCRIBED ABOVE.** * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.-no-investment-advice) 8\. NO INVESTMENT ADVICE ----------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.1-informational-purposes-only) 8.1 Informational Purposes Only The Interface and any information, content, or materials made available through the Interface are provided for informational purposes only. Nothing contained in or accessible through the Interface constitutes, or is intended to constitute, investment advice, financial advice, trading advice, tax advice, legal advice, or any other form of professional advice. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.2-no-recommendations) 8.2 No Recommendations **OBSIDIAN DOES NOT RECOMMEND THAT ANY DIGITAL ASSET SHOULD BE BOUGHT, SOLD, HELD, OR USED IN ANY PARTICULAR WAY. YOU SHOULD NOT TAKE, OR REFRAIN FROM TAKING, ANY ACTION BASED ON ANY INFORMATION CONTAINED IN OR ACCESSIBLE THROUGH THE INTERFACE. OBSIDIAN DOES NOT MAKE ANY INVESTMENT RECOMMENDATIONS AND DOES NOT OPINE ON THE MERITS OF ANY TRANSACTION OR DIGITAL ASSET.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.3-independent-decision-making) 8.3 Independent Decision-Making Before making any financial, legal, or other decision in connection with the Interface, you should conduct your own research and due diligence and consult with qualified professionals as appropriate. Any decision to access or use the Interface or to transact in digital assets is made solely at your own risk and discretion. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.4-unsolicited-transactions) 8.4 Unsolicited Transactions All transactions you execute through the Interface are unsolicited, meaning that you are solely responsible for initiating any transaction and that Obsidian does not solicit, recommend, or advise any transaction. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.-privacy-and-data) 9\. PRIVACY AND DATA --------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.1-privacy-policy) 9.1 Privacy Policy Your use of the Interface is subject to our Privacy Policy, available at [https://docs.tradecraft.fi/tradecraft/privacy-policyarrow-up-right](https://docs.tradecraft.fi/tradecraft/privacy-policy) , which is incorporated into this Agreement by reference. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.2-non-collection-of-personal-information) 9.2 Non-Collection of Personal Information The Interface does not require you to create an account, provide an email address, or submit any personal information to access or use its features. The Interface operates solely through wallet connections without collecting personally identifiable information. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.4-blockchain-data) 9.4 Blockchain Data You acknowledge that information related to your blockchain transactions, including your wallet address and transaction history, may be publicly visible on the Canton Network or associated block explorers, subject to Canton Network's privacy features. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.-intellectual-property) 10\. INTELLECTUAL PROPERTY --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.1-ownership) 10.1 Ownership The Interface, including all content, features, functionality, design, text, graphics, logos, icons, images, and software, is owned by Obsidian or its licensors and is protected by copyright, trademark, and other intellectual property laws. Except as expressly provided in this Agreement, Obsidian does not grant you any rights to use Obsidian's intellectual property. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.2-limited-license) 10.2 Limited License Subject to your compliance with this Agreement, Obsidian grants you a limited, non-exclusive, non-transferable, non-sublicensable, revocable license to access and use the Interface for your personal, non-commercial use. This license does not include any right to: (a) modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, or sell any content obtained from the Interface; (b) use any data mining, robots, or similar data gathering methods; or (c) use the Interface for any commercial purpose without Obsidian's prior written consent. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.3-trademarks) 10.3 Trademarks "Tradecraft," the Tradecraft logo, and any other Obsidian trademarks, service marks, graphics, and logos used in connection with the Interface are trademarks or registered trademarks of Obsidian. Other trademarks, service marks, graphics, and logos used in connection with the Interface may be the trademarks of their respective owners. You are not granted any right or license to use any such trademarks. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.4-feedback) 10.4 Feedback If you provide any feedback, suggestions, or ideas regarding the Interface ("Feedback"), you grant Obsidian a perpetual, irrevocable, worldwide, royalty-free license to use, copy, modify, create derivative works from, and otherwise exploit such Feedback for any purpose without compensation or attribution to you. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.-disclaimers) 11\. DISCLAIMERS ------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.1-as-is-and-as-available) 11.1 "As Is" and "As Available" **THE INTERFACE IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, OBSIDIAN DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.2-no-warranty-of-operation) 11.2 No Warranty of Operation **OBSIDIAN DOES NOT WARRANT THAT THE INTERFACE WILL BE UNINTERRUPTED, ERROR-FREE, SECURE, OR FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. OBSIDIAN DOES NOT WARRANT THAT ANY ERRORS OR DEFECTS WILL BE CORRECTED OR THAT THE INTERFACE WILL MEET YOUR REQUIREMENTS OR EXPECTATIONS.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.3-no-warranty-regarding-protocol) 11.3 No Warranty Regarding Protocol **OBSIDIAN MAKES NO REPRESENTATIONS OR WARRANTIES REGARDING THE TRADECRAFT PROTOCOL, INCLUDING ANY REPRESENTATION THAT THE PROTOCOL WILL OPERATE AS INTENDED, THAT IT IS FREE FROM BUGS OR VULNERABILITIES, OR THAT IT HAS BEEN OR WILL BE AUDITED. THE PROTOCOL IS PROVIDED BY THIRD PARTIES AND IS NOT UNDER OBSIDIAN'S CONTROL.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.4-no-warranty-regarding-digital-assets) 11.4 No Warranty Regarding Digital Assets **OBSIDIAN MAKES NO REPRESENTATIONS OR WARRANTIES REGARDING ANY DIGITAL ASSET, INCLUDING ITS VALUE, LEGALITY, OR AUTHENTICITY. OBSIDIAN DOES NOT GUARANTEE THAT ANY DIGITAL ASSET WILL MAINTAIN ITS VALUE OR BE EXCHANGEABLE FOR ANY OTHER ASSET.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.5-third-party-services) 11.5 Third-Party Services The Interface may contain links to third-party websites, services, or resources. Obsidian does not endorse and is not responsible for any third-party content, products, services, or practices. Your interactions with third parties are solely between you and such third parties. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.6-no-fiduciary-duty) 11.6 No Fiduciary Duty **THIS AGREEMENT IS NOT INTENDED TO, AND DOES NOT, CREATE OR IMPOSE ANY FIDUCIARY DUTIES ON OBSIDIAN. TO THE FULLEST EXTENT PERMITTED BY LAW, YOU ACKNOWLEDGE AND AGREE THAT OBSIDIAN OWES NO FIDUCIARY DUTIES OR LIABILITIES TO YOU OR ANY OTHER PARTY, AND THAT TO THE EXTENT ANY SUCH DUTIES OR LIABILITIES MAY EXIST AT LAW OR IN EQUITY, THOSE DUTIES AND LIABILITIES ARE HEREBY IRREVOCABLY DISCLAIMED, WAIVED, AND ELIMINATED.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.7-no-registration) 11.7 No Registration Obsidian is not registered with the U.S. Securities and Exchange Commission, the U.S. Commodity Futures Trading Commission, or any other regulatory authority in any capacity, including as a securities exchange, broker-dealer, investment adviser, commodity pool operator, or money services business. The Interface does not constitute a regulated financial service. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.-limitation-of-liability) 12\. LIMITATION OF LIABILITY ------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.1-exclusion-of-damages) 12.1 Exclusion of Damages **TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL OBSIDIAN, ITS AFFILIATES, OR THEIR RESPECTIVE OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, LICENSORS, OR SERVICE PROVIDERS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA, OR OTHER INTANGIBLE LOSSES, REGARDLESS OF WHETHER SUCH DAMAGES WERE FORESEEABLE AND WHETHER OR NOT OBSIDIAN WAS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.2-liability-cap) 12.2 Liability Cap **TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, THE TOTAL LIABILITY OF OBSIDIAN AND ITS AFFILIATES, AND THEIR RESPECTIVE OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, LICENSORS, AND SERVICE PROVIDERS, TO YOU FOR ALL CLAIMS ARISING OUT OF OR RELATING TO THIS AGREEMENT OR YOUR USE OF THE INTERFACE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, SHALL NOT EXCEED ONE HUNDRED UNITED STATES DOLLARS (USD $100.00).** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.3-essential-purpose) 12.3 Essential Purpose **THE LIMITATIONS OF LIABILITY SET FORTH IN THIS SECTION SHALL APPLY EVEN IF YOUR REMEDIES UNDER THIS AGREEMENT FAIL OF THEIR ESSENTIAL PURPOSE.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.4-jurisdictional-limitations) 12.4 Jurisdictional Limitations Some jurisdictions do not allow the exclusion or limitation of certain warranties or liabilities. In such jurisdictions, the exclusions and limitations set forth in this Agreement shall apply to the fullest extent permitted by applicable law. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.-indemnification) 13\. INDEMNIFICATION --------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.1-indemnification-obligation) 13.1 Indemnification Obligation You agree to indemnify, defend, and hold harmless Obsidian, its affiliates, and their respective officers, directors, employees, agents, licensors, and service providers from and against any and all claims, liabilities, damages, losses, costs, and expenses (including reasonable attorneys' fees) arising out of or relating to: (a) your access to or use of the Interface; (b) your violation of this Agreement; (c) your violation of any applicable law or regulation; (d) your violation of any third-party rights, including intellectual property rights; (e) any transaction you execute through the Interface or the Tradecraft Protocol; (f) any digital asset you create, provide liquidity for, or transact in; or (g) any dispute between you and any third party. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.2-defense-and-settlement) 13.2 Defense and Settlement Obsidian reserves the right to assume the exclusive defense and control of any matter subject to indemnification by you, and you agree to cooperate with Obsidian in asserting any available defenses. You shall not settle any claim without Obsidian's prior written consent. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.-release-and-waiver) 14\. RELEASE AND WAIVER --------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.1-general-release) 14.1 General Release **TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, YOU RELEASE OBSIDIAN, ITS AFFILIATES, AND THEIR RESPECTIVE OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, LICENSORS, AND SERVICE PROVIDERS FROM ANY AND ALL CLAIMS, DEMANDS, DAMAGES, LOSSES, COSTS, AND EXPENSES OF EVERY KIND AND NATURE, KNOWN AND UNKNOWN, SUSPECTED AND UNSUSPECTED, DISCLOSED AND UNDISCLOSED, ARISING OUT OF OR IN ANY WAY CONNECTED WITH YOUR ACCESS TO OR USE OF THE INTERFACE, THE TRADECRAFT PROTOCOL, OR ANY DIGITAL ASSET.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.2-california-civil-code-section-1542-waiver) 14.2 California Civil Code Section 1542 Waiver **IF YOU ARE A CALIFORNIA RESIDENT, YOU HEREBY WAIVE CALIFORNIA CIVIL CODE SECTION 1542, WHICH PROVIDES: "A GENERAL RELEASE DOES NOT EXTEND TO CLAIMS THAT THE CREDITOR OR RELEASING PARTY DOES NOT KNOW OR SUSPECT TO EXIST IN HIS OR HER FAVOR AT THE TIME OF EXECUTING THE RELEASE AND THAT, IF KNOWN BY HIM OR HER, WOULD HAVE MATERIALLY AFFECTED HIS OR HER SETTLEMENT WITH THE DEBTOR OR RELEASED PARTY." YOU ACKNOWLEDGE THAT YOU MAY HEREAFTER DISCOVER CLAIMS PRESENTLY UNKNOWN OR UNSUSPECTED, AND YOU AGREE THAT THIS RELEASE SHALL BE AND REMAIN EFFECTIVE IN ALL RESPECTS NOTWITHSTANDING ANY SUCH DISCOVERY.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.3-waiver-of-unknown-claims) 14.3 Waiver of Unknown Claims You acknowledge that you may later discover claims or facts in addition to or different from those you now know or believe to be true regarding the subject matter of this release. You intend this release to be and remain in effect notwithstanding the discovery of any such additional or different claims or facts. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.-dispute-resolution) 15\. DISPUTE RESOLUTION --------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.1-mandatory-arbitration) 15.1 Mandatory Arbitration **PLEASE READ THIS SECTION CAREFULLY. IT AFFECTS YOUR LEGAL RIGHTS, INCLUDING YOUR RIGHT TO FILE A LAWSUIT IN COURT.** Except for disputes relating to intellectual property rights or as otherwise specified below, any dispute, controversy, or claim arising out of or relating to this Agreement, including the formation, interpretation, breach, or termination thereof, whether based in contract, tort, statute, fraud, misrepresentation, or any other legal theory, shall be resolved by final and binding arbitration administered by JAMS in accordance with its Comprehensive Arbitration Rules and Procedures. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.2-arbitration-procedures) 15.2 Arbitration Procedures The arbitration shall be conducted by a single arbitrator in San Juan, Puerto Rico. The language of the arbitration shall be English. The arbitrator shall have the authority to grant any remedy or relief that would be available in a court of competent jurisdiction. The arbitrator's award shall be final and binding, and judgment on the award may be entered in any court having jurisdiction. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.3-pre-arbitration-notice) 15.3 Pre-Arbitration Notice Before initiating arbitration, you must send a written notice of the dispute to Obsidian describing the nature and basis of the claim and the specific relief sought. If the dispute is not resolved within thirty (30) days after receipt of such notice, either party may initiate arbitration. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.4-class-action-waiver) 15.4 Class Action Waiver **YOU AND OBSIDIAN AGREE THAT ANY DISPUTE RESOLUTION PROCEEDINGS, WHETHER IN ARBITRATION OR COURT, WILL BE CONDUCTED ONLY ON AN INDIVIDUAL BASIS AND NOT IN A CLASS, CONSOLIDATED, OR REPRESENTATIVE ACTION. YOU AND OBSIDIAN EXPRESSLY WAIVE ANY RIGHT TO PARTICIPATE IN A CLASS ACTION OR CLASS ARBITRATION. IF A COURT OR ARBITRATOR DETERMINES THAT THIS CLASS ACTION WAIVER IS UNENFORCEABLE AS TO A PARTICULAR CLAIM, THAT CLAIM SHALL BE SEVERED AND PROCEEDED WITH IN A COURT OF COMPETENT JURISDICTION, WHILE THE REMAINING CLAIMS SHALL PROCEED IN ARBITRATION.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.5-jury-trial-waiver) 15.5 Jury Trial Waiver **TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, YOU AND OBSIDIAN WAIVE ANY RIGHT TO A JURY TRIAL IN ANY LEGAL PROCEEDING ARISING OUT OF OR RELATING TO THIS AGREEMENT OR YOUR USE OF THE INTERFACE.** ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.6-exceptions) 15.6 Exceptions Notwithstanding the foregoing, either party may seek injunctive or other equitable relief in any court of competent jurisdiction to prevent the actual or threatened infringement, misappropriation, or violation of intellectual property rights or confidential information. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.7-arbitration-costs) 15.7 Arbitration Costs Each party shall bear its own costs and expenses in connection with the arbitration, except that the arbitrator may award the prevailing party its reasonable attorneys' fees and costs if permitted by applicable law. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-16.-governing-law) 16\. GOVERNING LAW ----------------------------------------------------------------------------------------------------------------- This Agreement and any dispute arising out of or relating to this Agreement shall be governed by and construed in accordance with the laws of the Commonwealth of Puerto Rico, without regard to its conflict of laws principles. To the extent that litigation is permitted under this Agreement, you consent to the exclusive jurisdiction of the courts located in San Juan, Puerto Rico. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.-european-union-users) 17\. EUROPEAN UNION USERS ------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.1-mica-compliance-notice) 17.1 MiCA Compliance Notice If you are located in the European Union or European Economic Area, you acknowledge that the regulatory framework for crypto-assets, including Regulation (EU) 2023/1114 on Markets in Crypto-Assets ("MiCA"), may apply to certain activities involving crypto-assets. Obsidian does not provide crypto-asset services as defined under MiCA and is not authorized as a crypto-asset service provider in any EU or EEA member state. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.2-no-regulated-services) 17.2 No Regulated Services The Interface provides access to decentralized protocol functionality and does not constitute: (a) custody and administration of crypto-assets on behalf of clients; (b) operation of a trading platform for crypto-assets; (c) exchange of crypto-assets for funds or other crypto-assets; (d) execution of orders for crypto-assets on behalf of clients; (e) placing of crypto-assets; (f) reception and transmission of orders for crypto-assets on behalf of clients; (g) providing advice on crypto-assets; (h) providing portfolio management on crypto-assets; or (i) providing transfer services for crypto-assets on behalf of clients. You interact directly with the decentralized Tradecraft Protocol, not with Obsidian as an intermediary. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.3-consumer-protections) 17.3 Consumer Protections Nothing in this Agreement shall limit any rights you may have under mandatory consumer protection laws in your jurisdiction that cannot be waived by contract. To the extent any provision of this Agreement conflicts with mandatory consumer protection laws applicable to you, that provision shall be modified to the minimum extent necessary to comply with such laws. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.4-no-crypto-asset-white-paper) 17.4 No Crypto-Asset White Paper Obsidian has not issued and does not intend to issue any crypto-asset or crypto-asset white paper. The Tradecraft Protocol does not have a native token issued by Obsidian. Any digital assets accessible through the Interface are third-party assets for which Obsidian bears no responsibility. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.-modifications) 18\. MODIFICATIONS ----------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.1-right-to-modify) 18.1 Right to Modify Obsidian reserves the right to modify this Agreement at any time in its sole discretion. Any modifications will be effective immediately upon posting the revised Agreement on the Interface with an updated "Last Updated" date. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.2-acceptance-of-modifications) 18.2 Acceptance of Modifications Your continued access to or use of the Interface after any modifications to this Agreement constitutes your acceptance of such modifications. If you do not agree to any modifications, you must immediately cease using the Interface. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.3-notification) 18.3 Notification Obsidian may, but is not obligated to, provide additional notice of material changes through the Interface or by other means. You are responsible for reviewing this Agreement periodically to stay informed of any modifications. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.-termination) 19\. TERMINATION ------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.1-termination-by-obsidian) 19.1 Termination by Obsidian Obsidian may, in its sole discretion, terminate or suspend your access to all or part of the Interface at any time, with or without notice, for any reason, including but not limited to your breach of this Agreement or if Obsidian believes you pose a legal, regulatory, or reputational risk. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.2-termination-by-you) 19.2 Termination by You You may terminate this Agreement at any time by ceasing all use of the Interface. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.3-effect-of-termination) 19.3 Effect of Termination Upon termination of this Agreement for any reason: (a) all rights and licenses granted to you under this Agreement shall immediately terminate; (b) you shall immediately cease all use of the Interface; and (c) the following sections shall survive termination: Sections 1.2, 1.3, 3, 4.3, 4.4, 6 through 16, and 19 through 21. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.-general-provisions) 20\. GENERAL PROVISIONS --------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.1-entire-agreement) 20.1 Entire Agreement This Agreement, together with the Privacy Policy, constitutes the entire agreement between you and Obsidian regarding your use of the Interface and supersedes all prior and contemporaneous agreements, proposals, or representations, written or oral, concerning its subject matter. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.2-severability) 20.2 Severability If any provision of this Agreement is held to be invalid, illegal, or unenforceable by a court or arbitrator of competent jurisdiction, such provision shall be modified to the minimum extent necessary to make it valid, legal, and enforceable, or if modification is not possible, shall be severed from this Agreement. The invalidity, illegality, or unenforceability of any provision shall not affect the validity, legality, or enforceability of the remaining provisions. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.3-waiver) 20.3 Waiver No waiver of any term or condition of this Agreement shall be deemed a further or continuing waiver of such term or condition or any other term or condition, and Obsidian's failure to assert any right or provision under this Agreement shall not constitute a waiver of such right or provision. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.4-assignment) 20.4 Assignment You may not assign or transfer this Agreement or any of your rights or obligations hereunder without Obsidian's prior written consent. Obsidian may freely assign or transfer this Agreement without restriction. Any attempted assignment in violation of this section shall be void. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.5-no-third-party-beneficiaries) 20.5 No Third-Party Beneficiaries This Agreement does not create any third-party beneficiary rights in any person, except that Obsidian's affiliates and licensors are intended third-party beneficiaries of the disclaimers and limitations of liability set forth herein. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.6-force-majeure) 20.6 Force Majeure Obsidian shall not be liable for any failure or delay in performing its obligations under this Agreement due to causes beyond its reasonable control, including but not limited to acts of God, natural disasters, war, terrorism, riots, embargoes, acts of civil or military authorities, fire, floods, accidents, pandemic, strikes, or shortages of transportation, facilities, fuel, energy, labor, or materials. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.7-headings) 20.7 Headings The section headings in this Agreement are for convenience only and have no legal or contractual effect. ### [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.8-language) 20.8 Language This Agreement is drafted in English. If this Agreement is translated into any other language, the English version shall control. * * * [hashtag](https://docs.tradecraft.fi/support/legal/terms-of-service#id-21.-contact-information) 21\. CONTACT INFORMATION ----------------------------------------------------------------------------------------------------------------------------- If you have any questions about this Agreement, please contact us at: **Obsidian Software LLC** Mailing Address: 151 Calle de San Francisco, Suite 200 Mailbox 1513 San Juan, PR 00901 Email: [\[email protected\]](https://docs.tradecraft.fi/cdn-cgi/l/email-protection) * * * **BY ACCESSING OR USING THE INTERFACE, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.** [PreviousGet Helpchevron-left](https://docs.tradecraft.fi/support/get-help) [NextPrivacy Policychevron-right](https://docs.tradecraft.fi/support/legal/privacy-policy) Last updated 2 months ago Was this helpful? * [1\. THE INTERFACE AND THE PROTOCOL](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.-the-interface-and-the-protocol) * [1.1 The Interface](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.1-the-interface) * [1.2 The Protocol](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.2-the-protocol) * [1.3 The Interface Is Distinct from the Protocol](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.3-the-interface-is-distinct-from-the-protocol) * [1.4 Third-Party Protocol Access](https://docs.tradecraft.fi/support/legal/terms-of-service#id-1.4-third-party-protocol-access) * [2\. ELIGIBILITY AND ACCESS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.-eligibility-and-access) * [2.1 Age and Capacity](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.1-age-and-capacity) * [2.2 Authority](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.2-authority) * [2.3 Compliance with Laws](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.3-compliance-with-laws) * [2.4 Prohibited Jurisdictions and Persons](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.4-prohibited-jurisdictions-and-persons) * [2.5 Prohibition on Circumvention](https://docs.tradecraft.fi/support/legal/terms-of-service#id-2.5-prohibition-on-circumvention) * [3\. NON-CUSTODIAL NATURE OF THE INTERFACE](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.-non-custodial-nature-of-the-interface) * [3.1 Non-Custodial Service](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.1-non-custodial-service) * [3.2 Wallet Connection](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.2-wallet-connection) * [3.3 No Recovery of Assets](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.3-no-recovery-of-assets) * [3.4 Transaction Responsibility](https://docs.tradecraft.fi/support/legal/terms-of-service#id-3.4-transaction-responsibility) * [4\. MAGIC ADDRESSES](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.-magic-addresses) * [4.1 Description of Magic Addresses](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.1-description-of-magic-addresses) * [4.2 Non-Custodial Execution](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.2-non-custodial-execution) * [4.3 User Responsibility for Correct Addresses](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.3-user-responsibility-for-correct-addresses) * [4.4 No Responsibility for Misplaced Funds](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.4-no-responsibility-for-misplaced-funds) * [4.5 Verification Requirement](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.5-verification-requirement) * [4.6 No Guarantee of Returned Token Amounts](https://docs.tradecraft.fi/support/legal/terms-of-service#id-4.6-no-guarantee-of-returned-token-amounts) * [5\. PROHIBITED ACTIVITIES](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.-prohibited-activities) * [5.1 Illegal Activity](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.1-illegal-activity) * [5.2 Sanctions Violations](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.2-sanctions-violations) * [5.3 Manipulation](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.3-manipulation) * [5.4 Interference](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.4-interference) * [5.5 Intellectual Property Infringement](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.5-intellectual-property-infringement) * [5.6 Harmful Code](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.6-harmful-code) * [5.7 False Information](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.7-false-information) * [5.8 Circumvention](https://docs.tradecraft.fi/support/legal/terms-of-service#id-5.8-circumvention) * [6\. DIGITAL ASSETS AND THIRD-PARTY TOKENS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.-digital-assets-and-third-party-tokens) * [6.1 No Endorsement](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.1-no-endorsement) * [6.2 Fraudulent Tokens](https://docs.tradecraft.fi/support/legal/terms-of-service#id-6.2-fraudulent-tokens) * [7\. ASSUMPTION OF RISK](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.-assumption-of-risk) * [7.1 Cryptocurrency Risks](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.1-cryptocurrency-risks) * [7.2 Express Assumption of Risk](https://docs.tradecraft.fi/support/legal/terms-of-service#id-7.2-express-assumption-of-risk) * [8\. NO INVESTMENT ADVICE](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.-no-investment-advice) * [8.1 Informational Purposes Only](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.1-informational-purposes-only) * [8.2 No Recommendations](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.2-no-recommendations) * [8.3 Independent Decision-Making](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.3-independent-decision-making) * [8.4 Unsolicited Transactions](https://docs.tradecraft.fi/support/legal/terms-of-service#id-8.4-unsolicited-transactions) * [9\. PRIVACY AND DATA](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.-privacy-and-data) * [9.1 Privacy Policy](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.1-privacy-policy) * [9.2 Non-Collection of Personal Information](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.2-non-collection-of-personal-information) * [9.4 Blockchain Data](https://docs.tradecraft.fi/support/legal/terms-of-service#id-9.4-blockchain-data) * [10\. INTELLECTUAL PROPERTY](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.-intellectual-property) * [10.1 Ownership](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.1-ownership) * [10.2 Limited License](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.2-limited-license) * [10.3 Trademarks](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.3-trademarks) * [10.4 Feedback](https://docs.tradecraft.fi/support/legal/terms-of-service#id-10.4-feedback) * [11\. DISCLAIMERS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.-disclaimers) * [11.1 "As Is" and "As Available"](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.1-as-is-and-as-available) * [11.2 No Warranty of Operation](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.2-no-warranty-of-operation) * [11.3 No Warranty Regarding Protocol](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.3-no-warranty-regarding-protocol) * [11.4 No Warranty Regarding Digital Assets](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.4-no-warranty-regarding-digital-assets) * [11.5 Third-Party Services](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.5-third-party-services) * [11.6 No Fiduciary Duty](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.6-no-fiduciary-duty) * [11.7 No Registration](https://docs.tradecraft.fi/support/legal/terms-of-service#id-11.7-no-registration) * [12\. LIMITATION OF LIABILITY](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.-limitation-of-liability) * [12.1 Exclusion of Damages](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.1-exclusion-of-damages) * [12.2 Liability Cap](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.2-liability-cap) * [12.3 Essential Purpose](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.3-essential-purpose) * [12.4 Jurisdictional Limitations](https://docs.tradecraft.fi/support/legal/terms-of-service#id-12.4-jurisdictional-limitations) * [13\. INDEMNIFICATION](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.-indemnification) * [13.1 Indemnification Obligation](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.1-indemnification-obligation) * [13.2 Defense and Settlement](https://docs.tradecraft.fi/support/legal/terms-of-service#id-13.2-defense-and-settlement) * [14\. RELEASE AND WAIVER](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.-release-and-waiver) * [14.1 General Release](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.1-general-release) * [14.2 California Civil Code Section 1542 Waiver](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.2-california-civil-code-section-1542-waiver) * [14.3 Waiver of Unknown Claims](https://docs.tradecraft.fi/support/legal/terms-of-service#id-14.3-waiver-of-unknown-claims) * [15\. DISPUTE RESOLUTION](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.-dispute-resolution) * [15.1 Mandatory Arbitration](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.1-mandatory-arbitration) * [15.2 Arbitration Procedures](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.2-arbitration-procedures) * [15.3 Pre-Arbitration Notice](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.3-pre-arbitration-notice) * [15.4 Class Action Waiver](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.4-class-action-waiver) * [15.5 Jury Trial Waiver](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.5-jury-trial-waiver) * [15.6 Exceptions](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.6-exceptions) * [15.7 Arbitration Costs](https://docs.tradecraft.fi/support/legal/terms-of-service#id-15.7-arbitration-costs) * [16\. GOVERNING LAW](https://docs.tradecraft.fi/support/legal/terms-of-service#id-16.-governing-law) * [17\. EUROPEAN UNION USERS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.-european-union-users) * [17.1 MiCA Compliance Notice](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.1-mica-compliance-notice) * [17.2 No Regulated Services](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.2-no-regulated-services) * [17.3 Consumer Protections](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.3-consumer-protections) * [17.4 No Crypto-Asset White Paper](https://docs.tradecraft.fi/support/legal/terms-of-service#id-17.4-no-crypto-asset-white-paper) * [18\. MODIFICATIONS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.-modifications) * [18.1 Right to Modify](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.1-right-to-modify) * [18.2 Acceptance of Modifications](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.2-acceptance-of-modifications) * [18.3 Notification](https://docs.tradecraft.fi/support/legal/terms-of-service#id-18.3-notification) * [19\. TERMINATION](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.-termination) * [19.1 Termination by Obsidian](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.1-termination-by-obsidian) * [19.2 Termination by You](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.2-termination-by-you) * [19.3 Effect of Termination](https://docs.tradecraft.fi/support/legal/terms-of-service#id-19.3-effect-of-termination) * [20\. GENERAL PROVISIONS](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.-general-provisions) * [20.1 Entire Agreement](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.1-entire-agreement) * [20.2 Severability](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.2-severability) * [20.3 Waiver](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.3-waiver) * [20.4 Assignment](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.4-assignment) * [20.5 No Third-Party Beneficiaries](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.5-no-third-party-beneficiaries) * [20.6 Force Majeure](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.6-force-majeure) * [20.7 Headings](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.7-headings) * [20.8 Language](https://docs.tradecraft.fi/support/legal/terms-of-service#id-20.8-language) * [21\. CONTACT INFORMATION](https://docs.tradecraft.fi/support/legal/terms-of-service#id-21.-contact-information) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Changelog | API | Tradecraft Docs [hashtag](https://docs.tradecraft.fi/api/changelog#v0.0.16-initial-release) v0.0.16 Initial Release -------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.tradecraft.fi/api/changelog#available-data) Available Data * API health check * List of pools and pool holdings * Token details * Current pool asset prices * Fee rates * Trade quotes * Add and withdraw liquidity quotes [PreviousTradecraft APIchevron-left](https://docs.tradecraft.fi/api) [NextHealthchevron-right](https://docs.tradecraft.fi/api/routes/health) Last updated 2 months ago Was this helpful? * [v0.0.16 Initial Release](https://docs.tradecraft.fi/api/changelog#v0.0.16-initial-release) * [Available Data](https://docs.tradecraft.fi/api/changelog#available-data) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Health | API | Tradecraft Docs Health check endpoints. ### [hashtag](https://docs.tradecraft.fi/api/routes/health#get-health) Health check get https://api.tradecraft.fi/v1/health Returns the health status of the API server. Responses chevron-right 200 Server is healthy application/json statusstringOptionalExample: `ok` get /health HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Server is healthy [PreviousChangelogchevron-left](https://docs.tradecraft.fi/api/changelog) [NextPoolschevron-right](https://docs.tradecraft.fi/api/routes/pools) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy GET /v1/health HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "status": "ok" } sun-brightdesktopmoon --- # Fees | API | Tradecraft Docs Fee information. ### [hashtag](https://docs.tradecraft.fi/api/routes/fees#get-feeamount-tokena-tokenb) Get fee amounts get https://api.tradecraft.fi/v1/feeAmount/{tokenA}/{tokenB} Returns the liquidity provider fee and operator fee percentages for the pool. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Fee amounts application/json fee\_amountnumber · doubleRequired Liquidity provider fee percentage. Example: `0.003` operator\_fee\_amountnumber · doubleRequired Operator fee percentage. Example: `0.001` chevron-right 400 Liquidity pool fees contract not found application/json get /feeAmount/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Fee amounts chevron-down [PreviousPriceschevron-left](https://docs.tradecraft.fi/api/routes/prices) [NextQuoteschevron-right](https://docs.tradecraft.fi/api/routes/quotes) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy GET /v1/feeAmount/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "fee_amount": 0.003, "operator_fee_amount": 0.001 } sun-brightdesktopmoon --- # Prices | API | Tradecraft Docs Price and ratio queries. ### [hashtag](https://docs.tradecraft.fi/api/routes/prices#get-ratio-tokena-tokenb) Get price ratio get https://api.tradecraft.fi/v1/ratio/{tokenA}/{tokenB} Returns the current price ratio of token B in terms of token A. Note that token A and token B do not always correlate to the first and second tokens in the pool name. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Price ratio application/json price\_of\_b\_in\_anumber · doubleRequired The price of token B expressed in token A (tokenB\_holdings / tokenA\_holdings). Example: `2` chevron-right 400 AMM not found application/json get /ratio/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Price ratio chevron-down [PreviousTokenschevron-left](https://docs.tradecraft.fi/api/routes/tokens) [NextFeeschevron-right](https://docs.tradecraft.fi/api/routes/fees) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy GET /v1/ratio/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "price_of_b_in_a": 2 } sun-brightdesktopmoon --- # Pools | API | Tradecraft Docs Liquidity Pool information and listing. ### [hashtag](https://docs.tradecraft.fi/api/routes/pools#get-pools) List all liquidity pools get https://api.tradecraft.fi/v1/pools Returns information about all available liquidity pools. Responses chevron-right 200 List of liquidity pools application/json poolsobject\[\]Required Array of pool information objects. Example: `[{"token1":"CC","token2":"USDCx","lp_token_name":"TC CC/USDCx LP","token1_holdings":5000,"token2_holdings":10000,"total_lp_tokens":1000,"lp_fee_percent":0.3,"operator_fee_percent":0.1,"yield24h":0.052}]` Show propertiesplus chevron-right 400 Bad request application/json get /pools HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 List of liquidity pools chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/pools#get-ammid-tokena-tokenb) Get a liquidity pool's ID get https://api.tradecraft.fi/v1/ammid/{tokenA}/{tokenB} Returns the liquidity pool identifier for a token pair. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Liquidity pool ID application/json amm\_idstringRequired The AMM pool identifier Example: `TC CC/USDCx LP` chevron-right 400 Liquidity pool not found or invalid token names given application/json get /ammid/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Liquidity pool ID chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/pools#get-inspect-tokena-tokenb) Get liquidity pool state get https://api.tradecraft.fi/v1/inspect/{tokenA}/{tokenB} Returns detailed information about the liquidity pool state including holdings, supply, and the constant product K. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Pool state application/json Detailed AMM pool state. total\_lp\_token\_supplynumber · doubleRequired Total supply of LP tokens. Example: `1000` token\_a\_idstringRequired Identifier for token A. Example: `CC` token\_a\_holdingsnumber · doubleRequired Amount of token A in the pool. Example: `5000` token\_b\_idstringRequired Identifier for token B. Example: `USDCx` token\_b\_holdingsnumber · doubleRequired Amount of token B in the pool. Example: `10000` knumber · doubleRequired The constant product (token\_a\_holdings \* token\_b\_holdings). Example: `50000000` chevron-right 400 Pool not found or token unknown application/json get /inspect/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Pool state chevron-down [PreviousHealthchevron-left](https://docs.tradecraft.fi/api/routes/health) [NextTokenschevron-right](https://docs.tradecraft.fi/api/routes/tokens) Last updated 2 months ago Was this helpful? * [GETList all liquidity pools](https://docs.tradecraft.fi/api/routes/pools#get-pools) * [GETGet a liquidity pool's ID](https://docs.tradecraft.fi/api/routes/pools#get-ammid-tokena-tokenb) * [GETGet liquidity pool state](https://docs.tradecraft.fi/api/routes/pools#get-inspect-tokena-tokenb) Was this helpful? sun-brightdesktopmoon Copy GET /v1/pools HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "pools": [\ {\ "token1": "CC",\ "token2": "USDCx",\ "lp_token_name": "TC CC/USDCx LP",\ "token1_holdings": 5000,\ "token2_holdings": 10000,\ "total_lp_tokens": 1000,\ "lp_fee_percent": 0.3,\ "operator_fee_percent": 0.1,\ "yield24h": 0.052\ }\ ] } Copy GET /v1/ammid/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "amm_id": "TC CC/USDCx LP" } Copy GET /v1/inspect/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "total_lp_token_supply": 1000, "token_a_id": "CC", "token_a_holdings": 5000, "token_b_id": "USDCx", "token_b_holdings": 10000, "k": 50000000 } sun-brightdesktopmoon --- # Tokens | API | Tradecraft Docs Token and instrument information. ### [hashtag](https://docs.tradecraft.fi/api/routes/tokens#get-tokena-tokena-tokenb) Get Token A information get https://api.tradecraft.fi/v1/tokenA/{tokenA}/{tokenB} Returns token information for the first token in the liquidity pool. Note that this is not always the first token in the pool name. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Token A information application/json Token information response. instrument\_idobjectRequired Unique identifier for a financial instrument. Show propertiesplus instrument\_infoobjectRequired Extended information about a financial instrument. Show propertiesplus chevron-right 400 AMM not found or token unknown application/json get /tokenA/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Token A information chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/tokens#get-tokenb-tokena-tokenb) Get Token B information get https://api.tradecraft.fi/v1/tokenB/{tokenA}/{tokenB} Returns token information for the second token in the pool. Note that this is not always the second token in the pool name. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Token B information application/json Token information response. instrument\_idobjectRequired Unique identifier for a financial instrument. Show propertiesplus instrument\_infoobjectRequired Extended information about a financial instrument. Show propertiesplus chevron-right 400 AMM not found or token unknown application/json get /tokenB/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Token B information chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/tokens#get-lptoken-tokena-tokenb) Get LP Token information get https://api.tradecraft.fi/v1/lpToken/{tokenA}/{tokenB} Returns instrument information for the liquidity provider token of the pool. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 LP Token information application/json Token information response. instrument\_idobjectRequired Unique identifier for a financial instrument. Show propertiesplus instrument\_infoobjectRequired Extended information about a financial instrument. Show propertiesplus chevron-right 400 LP token not found application/json get /lpToken/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 LP Token information chevron-down [PreviousPoolschevron-left](https://docs.tradecraft.fi/api/routes/pools) [NextPriceschevron-right](https://docs.tradecraft.fi/api/routes/prices) Last updated 2 months ago Was this helpful? * [GETGet Token A information](https://docs.tradecraft.fi/api/routes/tokens#get-tokena-tokena-tokenb) * [GETGet Token B information](https://docs.tradecraft.fi/api/routes/tokens#get-tokenb-tokena-tokenb) * [GETGet LP Token information](https://docs.tradecraft.fi/api/routes/tokens#get-lptoken-tokena-tokenb) Was this helpful? sun-brightdesktopmoon Copy GET /v1/tokenA/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "instrument_info": { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "registry_url": "https://registry.example.com" } } Copy GET /v1/tokenB/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "instrument_info": { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "registry_url": "https://registry.example.com" } } Copy GET /v1/lpToken/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "instrument_info": { "instrument_id": { "admin": "party::admin123", "id": "Amulet" }, "registry_url": "https://registry.example.com" } } sun-brightdesktopmoon --- # Models | API | Tradecraft Docs Error Show propertiesplus InstrumentId Show propertiesplus InstrumentInfo Show propertiesplus TokenResponse Show propertiesplus AmmIdResponse Show propertiesplus AmmInspectResponse Show propertiesplus PoolInfo Show propertiesplus ListPoolsResponse Show propertiesplus RatioResponse Show propertiesplus FeeAmountResponse Show propertiesplus QuoteTradeFixedInputResponse Show propertiesplus QuoteTradeFixedOutputResponse Show propertiesplus QuoteLPWithdrawalResponse Show propertiesplus QuoteLPDepositResponse Show propertiesplus PoolYieldResponse Show propertiesplus PoolVolumeResponse Show propertiesplus PoolVolumeHistoryResponse Show propertiesplus VolumeHistoryDataPoint Show propertiesplus PoolYieldHistoryResponse Show propertiesplus YieldHistoryDataPoint Show propertiesplus [PreviousLiquiditychevron-left](https://docs.tradecraft.fi/api/routes/liquidity) Last updated 2 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Getting Started | Install Guide | Tradecraft Docs Tradecraft is free to use. Install Tradecraft on your Validator Node to start trading from any Party. [NextSupportchevron-right](https://docs.tradecraft.fi/app-documentation/onboarding/support) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Support | Install Guide | Tradecraft Docs If you are running a Canton Network Validator Node and plan on installing Tradecraft, we recommend touching base with us via [\[email protected\]envelope](https://docs.tradecraft.fi/cdn-cgi/l/email-protection#274e494148675355464342445546415309414e) . We will add you to our Slack Channels for general and operations support, where we also post important software update announcements. While waiting for us to get back to you proceed with the install steps below. [PreviousGetting Startedchevron-left](https://docs.tradecraft.fi/app-documentation) [NextTechnical Requirementschevron-right](https://docs.tradecraft.fi/app-documentation/installation/markdown) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Quotes | API | Tradecraft Docs Trade quote calculations. ### [hashtag](https://docs.tradecraft.fi/api/routes/quotes#get-quoteforfixedinput-tokena-tokenb) Get trade quote for fixed input get https://api.tradecraft.fi/v1/quoteForFixedInput/{tokenA}/{tokenB} Calculate how much of token B the user will receive when providing a fixed amount of token A. Uses the constant product formula with double-sided fees. Note that token A and token B do not always correlate to the first and second tokens in the pool name. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters givingAmountnumber · doubleRequired The amount of token A the user is giving Example: `100` Responses chevron-right 200 Trade quote application/json user\_getsnumber · doubleRequired The amount of output token the user will receive. Example: `49.5` chevron-right 400 Invalid parameters or AMM not found application/json get /quoteForFixedInput/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Trade quote chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/quotes#get-quoteforfixedoutput-tokena-tokenb) Get trade quote for fixed output get https://api.tradecraft.fi/v1/quoteForFixedOutput/{tokenA}/{tokenB} Calculate how much of token A the user must provide to receive a fixed amount of token B. Uses the constant product formula with double-sided fees. Note that token A and token B do not always correlate to the first and second tokens in the pool name. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters gettingAmountnumber · doubleRequired The amount of token B the user wants to receive Example: `50` Responses chevron-right 200 Trade quote application/json user\_givesnumber · doubleRequired The amount of input token the user must provide. Example: `101` chevron-right 400 Invalid parameters or AMM not found application/json get /quoteForFixedOutput/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Trade quote chevron-down [PreviousFeeschevron-left](https://docs.tradecraft.fi/api/routes/fees) [NextLiquiditychevron-right](https://docs.tradecraft.fi/api/routes/liquidity) Last updated 2 months ago Was this helpful? * [GETGet trade quote for fixed input](https://docs.tradecraft.fi/api/routes/quotes#get-quoteforfixedinput-tokena-tokenb) * [GETGet trade quote for fixed output](https://docs.tradecraft.fi/api/routes/quotes#get-quoteforfixedoutput-tokena-tokenb) Was this helpful? sun-brightdesktopmoon Copy GET /v1/quoteForFixedInput/{tokenA}/{tokenB}?givingAmount=100 HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "user_gets": 49.5 } Copy GET /v1/quoteForFixedOutput/{tokenA}/{tokenB}?gettingAmount=50 HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "user_gives": 101 } sun-brightdesktopmoon --- # Technical Requirements | Install Guide | Tradecraft Docs circle-info At this time accessing the Tradecraft app requires having a Canton Network Validator Node on which the software can be installed. If you do not have a node and represent an organization looking to add value to the Canton Network you may get started here: [https://sync.global/validators/arrow-up-right](https://sync.global/validators/) #### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/markdown#containerization) Containerization Tradecraft requires access to your Validator’s Ledger API. You will need to ensure that your firewall allows Tradecraft access to that API, which usually means running the app in the same cluster with your other Canton app backends. Our container support is as follows: Available Support Documentation **Kubernetes** check Full support check Fully documented **Docker** check Limited support clock-three Coming soon #### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/markdown#authentication) Authentication Generally speaking, any OAuth IDP could be used with Tradecraft, however our team may not be able to fully support you with less popular options if troubleshooting is necessary. Keycloak and auth0 have both been used by our current install base: Available Support Documentation **Keycloak** check Full support check Fully documented **auth0** check Full support check Fully documented **Other** question Limited support x Undocumented [PreviousSupportchevron-left](https://docs.tradecraft.fi/app-documentation/onboarding/support) [NextAuthenticationchevron-right](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks) Last updated 16 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Activate Tradecraft | Install Guide | Tradecraft Docs circle-info If you are a provider of node hosting services you will now need to securely send the credentials of the 'tradecraft' user account to your client. Installation is complete. Sign in using any account in your Node's IDP (Identity Provider), and start trading! [PreviousWhitelist URLschevron-left](https://docs.tradecraft.fi/app-documentation/installation/integrations) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Container Initialization | Install Guide | Tradecraft Docs Choose a method to run the Tradecraft UI components: [aKuberneteschevron-right](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes) [bDockerchevron-right](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/docker) [PreviousUpload .darschevron-left](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars) [NextKuberneteschevron-right](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Authentication | Install Guide | Tradecraft Docs circle-info The screenshots in the following install instructions have not been updated to reflect our name change from CantonSwap to Tradecraft. Wherever "cantonswap" appears, replace it with "tradecraft". Choose an IDP to use: [aKeycloakchevron-right](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak) [bauth0chevron-right](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0) [PreviousTechnical Requirementschevron-left](https://docs.tradecraft.fi/app-documentation/installation/markdown) [NextKeycloakchevron-right](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Whitelist URLs | Install Guide | Tradecraft Docs 1 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/integrations#super-validators) Super Validators Tradecraft needs to communicate with Super Validator nodes to get disclosed contracts that are not available on the local participant node. Update your firewall/egress rules to whitelist all the Super Validators listed here: [https://sync.global/sv-network/arrow-up-right](https://sync.global/sv-network/) This step is typically already completed when setting up your node as described here: [https://docs.sync.global/validator\_operator/validator\_networking.html#egressarrow-up-right](https://docs.sync.global/validator_operator/validator_networking.html#egress) 2 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/integrations#token-urls) Token URLs [https://api.tradecraft.fi/v1/tokens.jsonapi.tradecraft.fichevron-right](https://api.tradecraft.fi/v1/tokens.json) Also whitelist the URLs for any of the tokens you wish to trade in the above file. circle-info We intend to remove this step from the install process in the future and make new tokens immediately available to trade without manual whitelisting. [PreviousDockerchevron-left](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/docker) [NextActivate Tradecraftchevron-right](https://docs.tradecraft.fi/app-documentation/installation/activate-tradecraft) Last updated 3 months ago Was this helpful? * [Super Validators](https://docs.tradecraft.fi/app-documentation/installation/integrations#super-validators) * [Token URLs](https://docs.tradecraft.fi/app-documentation/installation/integrations#token-urls) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Upload .dars | Install Guide | Tradecraft Docs If you have a method of connecting to the Canton Console then you can use the `upload` command ([documentation herearrow-up-right](https://docs.daml.com/canton/reference/console.html#dars-upload) ) to easily upload `.dar` files: `canton.dars.upload(“my.dar”)` Otherwise, you can adapt the following shell script: chevron-rightShell Script[hashtag](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars#shell-script) [https://gitlab.com/obsidian.systems/cantonswap-docs/-/blob/main/upload-dar.sharrow-up-right](https://gitlab.com/obsidian.systems/cantonswap-docs/-/blob/main/upload-dar.sh) Copy curl https://gitlab.com/obsidian.systems/cantonswap-docs/-/raw/main/upload-dar.sh 1 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars#upload-the-tradecraft-.dar-file) Upload the Tradecraft .dar File Download the Tradecraft `.dar` file and upload it to your participant node: [https://s3.us-east-2.amazonaws.com/tradecraft.dar/tradecraft-0.0.16.dararrow-up-right](https://s3.us-east-2.amazonaws.com/tradecraft.dar/tradecraft-0.0.16.dar) 2 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars#upload-the-utility-app-.dar-files) Upload the Utility App .dar Files The Utility App `.dar` files need to be installed on your validator for certain trades to work. Download the entire bundle and upload each `.dar` to your participant node: [![Logo](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Fdocs.digitalasset.com%2F_static%2Ffavicon.svg&width=20&dpr=3&quality=100&sign=cf75436f&sv=2)DAR Package Versions — Digital Asset’s platform documentationdocs.digitalasset.comchevron-right](https://docs.digitalasset.com/utilities/devnet/reference/dar-versions/dar-versions.html) Only the `.dar` files need to be uploaded, you do not need to install the UI. [Previousauth0chevron-left](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0) [NextContainer Initializationchevron-right](https://docs.tradecraft.fi/app-documentation/installation/images-and-media) Last updated 16 days ago Was this helpful? * [Upload the Tradecraft .dar File](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars#upload-the-tradecraft-.dar-file) * [Upload the Utility App .dar Files](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars#upload-the-utility-app-.dar-files) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Keycloak | Install Guide | Tradecraft Docs 1 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak#create-keycloak-client) Create Keycloak Client Create a new client named `tradecraft-ui` via the Keycloak admin UI. Give it the standard flow so users can OAuth into the Tradecraft UI, and allow direct user grants. ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FjIUTYA31Ea2E1PK5caQW%252FKeyCloak%2520-%2520Create%2520client.png%3Falt%3Dmedia%26token%3Ddb0aa7d9-5afb-4f1f-bbeb-83b652c9d12f&width=768&dpr=3&quality=100&sign=7747233&sv=2) Add the hostname as a valid redirect URL: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FHn2p31GYJFB3ujKyqfpJ%252FKeycloak%2520-%2520Access%2520settings.png%3Falt%3Dmedia%26token%3D2d9b8fd7-848e-4a23-926f-74c948ebf28e&width=768&dpr=3&quality=100&sign=5e8282e6&sv=2) You will need to add a default client scope which will map the appropriate audience for your validator. The Splice instructions has this set to `https://canton.network.global` by default and you may already have an existing scope for this, as it’s usually needed for configuring Splice. Here is an example scope mapper: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FWk2TXigTjGxNwaiIsNIk%252FKeycloak%2520-%2520Audience.png%3Falt%3Dmedia%26token%3Db3c6f1be-00dd-48ff-866d-9f8bcdea919f&width=768&dpr=3&quality=100&sign=d560c3b7&sv=2) 2 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak#create-keycloak-user) Create Keycloak User Create a new user in Keycloak called `tradecraft` and give it a _non-temporary_ password. circle-info While you technically can use an existing account on the node, it is _highly_ recommended not to do so. Additionally, using the primary party on the node is strictly not allowed. Login to your validator’s wallet app and press the big “ONBOARD YOURSELF” button to be issued a Party ID, which will be displayed in the top right corner of the wallet UI. ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fkeep-bbsk%2FAFgXFlL9uFzp3C9QOWic_ecBcCa8aVNGKzOmzufo8GPvICfHyO2P5ofN4xOIqPMV4-eNVCztlINIfZqZ67i5Fj8RFk5Kyt3s6O-rx6mxCE7d_PIXZvgrmpHn3w%3Ds1009&width=768&dpr=3&quality=100&sign=a51fb754&sv=2) ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fkeep-bbsk%2FAFgXFlKsx0CVrfE3YVSwgNkYXFrx0e_9uiUvLon4oivvAEHRZCI9SWtJbecQMg5OIpleG3RfyCDY7YgHeks6cltV9IFP0Bw5FMk3Zotvm3-1IJxCRMPXKv9wjQ%3Ds1009&width=768&dpr=3&quality=100&sign=f1b7ae96&sv=2) [PreviousAuthenticationchevron-left](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks) [Nextauth0chevron-right](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0) Last updated 3 months ago Was this helpful? * [Create Keycloak Client](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak#create-keycloak-client) * [Create Keycloak User](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak#create-keycloak-user) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # auth0 | Install Guide | Tradecraft Docs This setup assumes that you have already configured your splice instance to use an Auth0 tenant. Typically this is done as part of setting up your Validator Node. 1 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-auth0-application) Create auth0 Application From the auth0 dashboard add an application for `tradecraft-ui` as a single-page application: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FDQKvnyvtshCFaApNyjFD%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_.png%3Falt%3Dmedia%26token%3Dd25b2138-8ff3-465c-a26d-6b5dc077e7f2&width=768&dpr=3&quality=100&sign=470c6ebe&sv=2) ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252F1lZkJ9UobX9teQ7lxkgo%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_%2520%281%29.png%3Falt%3Dmedia%26token%3D68106057-2b5c-43ee-bbfd-4c8e829f823e&width=768&dpr=3&quality=100&sign=1cfb41f9&sv=2) Select the “Settings” tab: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FXOEwcSZo0Y6GyOZnGsXO%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_%2520%282%29.png%3Falt%3Dmedia%26token%3D740f71b0-ca83-423a-bd4f-4273438bb290&width=768&dpr=3&quality=100&sign=db419f66&sv=2) Make a note of the "Client ID" shown above, you'll need to put that ID in a config file during the [Container Initialization](https://docs.tradecraft.fi/app-documentation/installation/images-and-media) step. Scroll down to "Application URIs" and set the "Allowed Callback URLs" to include the `/oauth/redirect` path at your Tradecraft app hostname, set a logout URL, and save: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252Fsu3HMXOVv9fK6inCnJ8P%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_%2520%285%29.png%3Falt%3Dmedia%26token%3D28ececff-765d-4baa-8a8a-406f42605d82&width=768&dpr=3&quality=100&sign=af154ea6&sv=2) 2 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-api) Create API Select "APIs" in the left-hand panel. If you have already set up splice this step is probably already complete, but verify that there is an entry for the API audience used by your validator. The default API audience suggested by the splice documentation is: `https://canton.network.global` ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FSRMC4cowgtKauXCK2s0C%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_%2520%284%29.png%3Falt%3Dmedia%26token%3D91a633e9-8f61-481d-afba-1b808489353a&width=768&dpr=3&quality=100&sign=d17458f2&sv=2) 3 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-user) Create User Under "User Management" select "Create User" and enter a unique email address and a non-temporary password: circle-info While you technically can use an existing account on the node, it is _highly_ recommended not to do so. Additionally, using the primary party on the node is strictly not allowed. ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252Fh0tS7u5Ge0yHmZ338gGH%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_users.png%3Falt%3Dmedia%26token%3D33cad99c-083a-4991-814f-e4a739bafe05&width=768&dpr=3&quality=100&sign=7e1d7550&sv=2) ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FfTC1u9Q5fr4VBeaMcKkE%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_users%2520%281%29.png%3Falt%3Dmedia%26token%3D94ebb5ed-6b70-4391-b4a1-33f8fa3625b3&width=768&dpr=3&quality=100&sign=55f0307b&sv=2) circle-info This password will be used in config files for the containers that run the app. If changed via a sign-in password reset request without updating the config, the app will not run properly. For this reason we recommend using an email address that is access restricted to users who understand not to change the password via the sign in UI. Once created edit the "Name" field and name it `tradecraft` ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252F7GrQZeSfMMJpaFYrcBmt%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_users%2520%284%29.png%3Falt%3Dmedia%26token%3De3a15467-7977-4864-847e-1b6b5d797c33&width=768&dpr=3&quality=100&sign=6f4d2d9a&sv=2) ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FkOZXg9Vbi977Z1epBcBJ%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_users%2520%283%29.png%3Falt%3Dmedia%26token%3D9bc927d0-b198-4c4e-8597-f52510766306&width=768&dpr=3&quality=100&sign=9cd5bb13&sv=2) Login to your validator’s wallet app and press the big “ONBOARD YOURSELF” button to be issued a Party ID, which will be displayed in the top right corner of the wallet UI. ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fkeep-bbsk%2FAFgXFlKw2HxebVvZQLNvxLGHgvWf7jDd_pXRfRx-KStBjZcZCT89LDroBBeHqqToYP2QcZF-zfl7Lft8AFv-mwKhbuFPjxGzacPvXfZeLX-_FJnx-z6UGDhZNw%3Ds1009&width=768&dpr=3&quality=100&sign=12122c1e&sv=2) [PreviousKeycloakchevron-left](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/keycloak) [NextUpload .darschevron-right](https://docs.tradecraft.fi/app-documentation/installation/upload-.dars) Last updated 3 months ago Was this helpful? * [Create auth0 Application](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-auth0-application) * [Create API](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-api) * [Create User](https://docs.tradecraft.fi/app-documentation/installation/interactive-blocks/auth0#create-user) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Liquidity | API | Tradecraft Docs Liquidity provider operations. ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-quotelpwithdrawal-tokena-tokenb) Get liquidity withdrawal quote get https://api.tradecraft.fi/v1/quoteLPWithdrawal/{tokenA}/{tokenB} Calculate how much of each token the user will receive when redeeming LP tokens. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters lpTokenAmountnumber · doubleRequired The amount of LP tokens to redeem Example: `10` Responses chevron-right 200 Liquidity withdrawal quote application/json amount\_instrument\_1number · doubleRequired Amount of instrument 1 to receive. Example: `50` amount\_instrument\_2number · doubleRequired Amount of instrument 2 to receive. Example: `100` chevron-right 400 Invalid parameters or liquidity pool not found application/json get /quoteLPWithdrawal/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Liquidity withdrawal quote chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-quotelpdeposit-tokena-tokenb) Get liquidity deposit quote get https://api.tradecraft.fi/v1/quoteLPDeposit/{tokenA}/{tokenB} Calculate the maximum LP tokens that can be minted given the provided amounts of both instruments. Returns the optimal deposit amounts maintaining the pool ratio. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters instrument1Amountnumber · doubleRequired The amount of instrument 1 available for deposit Example: `100` instrument2Amountnumber · doubleRequired The available amount of instrument 2 available for deposit Example: `200` Responses chevron-right 200 Liquidity deposit quote application/json lp\_tokens\_to\_mintnumber · doubleRequired Amount of LP tokens that will be minted. Example: `10` instrument\_1\_to\_depositnumber · doubleRequired Amount of instrument 1 required for deposit. Example: `100` instrument\_2\_to\_depositnumber · doubleRequired Amount of instrument 2 required for deposit. Example: `200` chevron-right 400 Invalid parameters or liquidity pool not found application/json get /quoteLPDeposit/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Liquidity deposit quote chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-yield-tokena-tokenb) Get pool yield/APY get https://api.tradecraft.fi/v1/yield/{tokenA}/{tokenB} Returns annualized percentage yield (APY) calculations for the pool across multiple time periods. APY is calculated based on the growth of value per LP token (k / lpSupply) over time. Requires Apollo DB connection for historical data; returns empty yield data if unavailable. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Pool yield data application/json pool\_idstringRequired The AMM pool identifier Example: `TC CC/USDC LP` yieldobjectRequired Map of time period labels to annualized percentage yield (APY) values. Keys are time periods (1h, 4h, 12h, 1d, 2d, 3d, 7d, 14d, 30d). Values are APY as decimals (e.g., 0.05 = 5% APY). A value of 0 indicates insufficient data for that period. Example: `{"1h":0,"4h":0,"12h":0,"1d":0.052,"7d":0.048,"30d":0.045}` Show propertiesplus chevron-right 400 AMM not found application/json get /yield/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Pool yield data chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-yield_history-tokena-tokenb) Get historical yield/APY over time get https://api.tradecraft.fi/v1/yield\_history/{tokenA}/{tokenB} Returns an array of timestamped APY data points for the pool. Each data point represents the annualized yield during that time interval, calculated based on the growth of value per LP token (sqrt(k) / lpSupply). Timestamps are aligned to interval boundaries (e.g., top of minute, top of hour, midnight). Available windows: * hour: 60 data points at 1-minute intervals * day: 288 data points at 5-minute intervals * week: 168 data points at 1-hour intervals * month: 240 data points at 3-hour intervals * year: 365 data points at 1-day intervals Requires Apollo DB connection for historical data. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters windowstring · enumRequired The time window for the yield history Example: `day`Possible values: `hour``day``week``month``year` Responses chevron-right 200 Historical yield data application/json pool\_idstringRequired The AMM pool identifier Example: `TC CC/USDCx LP` windowstring · enumRequired The requested time window Example: `day`Possible values: `hour``day``week``month``year` historyobject\[\]Required Array of timestamped APY data points, ordered from oldest to newest Show propertiesplus chevron-right 400 AMM not found or invalid window application/json get /yield\_history/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Historical yield data chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-volume-tokena-tokenb) Get pool trading volume in USD get https://api.tradecraft.fi/v1/volume/{tokenA}/{tokenB} Returns USD-denominated trading volume for the pool across multiple time periods. Volume is calculated by tracking changes in AMM reserves between consecutive states. Each swap is converted to USD at the exchange rate that was active at the time of that swap. USD conversion is performed using: * Stablecoins (SBC, USDCx): 1:1 with USD * CC (Canton Coin): Historical exchange rate from OpenMiningRound contracts via Scan ACS API Returns an error if neither token can be converted to USD. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Responses chevron-right 200 Pool volume data in USD application/json pool\_idstringRequired The AMM pool identifier Example: `TC CC/USDCx LP` volume\_usdobjectRequired Map of time period labels to USD-denominated trading volume. Keys are time periods (1h, 4h, 12h, 1d, 2d, 3d, 7d, 14d, 30d). Values are the total swap volume in USD for that period. USD conversion uses stablecoin rates (1:1) or CC exchange rate from Scan API. Example: `{"1h":150,"1d":1500,"7d":10000}` Show propertiesplus chevron-right 400 AMM not found or cannot calculate USD volume application/json get /volume/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Pool volume data in USD chevron-down ### [hashtag](https://docs.tradecraft.fi/api/routes/liquidity#get-volume_history-tokena-tokenb) Get historical trading volume over time get https://api.tradecraft.fi/v1/volume\_history/{tokenA}/{tokenB} Returns an array of timestamped volume data points for the pool. Each data point represents the USD-denominated trading volume during that time interval. Timestamps are aligned to interval boundaries (e.g., top of minute, top of hour, midnight). Available windows: * hour: 60 data points at 1-minute intervals * day: 288 data points at 5-minute intervals * week: 168 data points at 1-hour intervals * month: 240 data points at 3-hour intervals * year: 365 data points at 1-day intervals Volume calculation uses the same methodology as /volume endpoint. Path parameters tokenAstring · enumRequired The name/symbol of the first token (URL encoded). Example: `CC`Possible values: `CC``USDCx``CBTC` tokenBstring · enumRequired The name/symbol of the second token (URL encoded). Example: `USDCx`Possible values: `CC``USDCx``CBTC` Query parameters windowstring · enumRequired The time window for the volume history Example: `day`Possible values: `hour``day``week``month``year` Responses chevron-right 200 Historical volume data application/json pool\_idstringRequired The AMM pool identifier Example: `TC CC/USDCx LP` windowstring · enumRequired The requested time window Example: `day`Possible values: `hour``day``week``month``year` historyobject\[\]Required Array of timestamped volume data points, ordered from oldest to newest Show propertiesplus chevron-right 400 AMM not found, invalid window, or cannot calculate USD volume application/json get /volume\_history/{tokenA}/{tokenB} HTTPchevron-down HTTPcURLJavaScriptPython Test it 200 Historical volume data chevron-down [PreviousQuoteschevron-left](https://docs.tradecraft.fi/api/routes/quotes) [NextModelschevron-right](https://docs.tradecraft.fi/api/routes/models) Last updated 2 months ago Was this helpful? * [GETGet liquidity withdrawal quote](https://docs.tradecraft.fi/api/routes/liquidity#get-quotelpwithdrawal-tokena-tokenb) * [GETGet liquidity deposit quote](https://docs.tradecraft.fi/api/routes/liquidity#get-quotelpdeposit-tokena-tokenb) * [GETGet pool yield/APY](https://docs.tradecraft.fi/api/routes/liquidity#get-yield-tokena-tokenb) * [GETGet historical yield/APY over time](https://docs.tradecraft.fi/api/routes/liquidity#get-yield_history-tokena-tokenb) * [GETGet pool trading volume in USD](https://docs.tradecraft.fi/api/routes/liquidity#get-volume-tokena-tokenb) * [GETGet historical trading volume over time](https://docs.tradecraft.fi/api/routes/liquidity#get-volume_history-tokena-tokenb) Was this helpful? sun-brightdesktopmoon Copy GET /v1/quoteLPWithdrawal/{tokenA}/{tokenB}?lpTokenAmount=10 HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "amount_instrument_1": 50, "amount_instrument_2": 100 } Copy GET /v1/quoteLPDeposit/{tokenA}/{tokenB}?instrument1Amount=100&instrument2Amount=200 HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "lp_tokens_to_mint": 10, "instrument_1_to_deposit": 100, "instrument_2_to_deposit": 200 } Copy GET /v1/yield/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "pool_id": "TC CC/USDC LP", "yield": { "1h": 0, "4h": 0, "12h": 0, "1d": 0.052, "7d": 0.048, "30d": 0.045 } } Copy GET /v1/yield_history/{tokenA}/{tokenB}?window=day HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "pool_id": "TC CC/USDCx LP", "window": "day", "history": [\ {\ "timestamp": "2026-01-20T14:35:00Z",\ "apy": 0.05\ }\ ] } Copy GET /v1/volume/{tokenA}/{tokenB} HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "pool_id": "TC CC/USDCx LP", "volume_usd": { "1h": 150, "1d": 1500, "7d": 10000 } } Copy GET /v1/volume_history/{tokenA}/{tokenB}?window=day HTTP/1.1 Host: api.tradecraft.fi Accept: */* Copy { "pool_id": "TC CC/USDCx LP", "window": "day", "history": [\ {\ "timestamp": "2026-01-20T14:35:00Z",\ "volume_usd": 150\ }\ ] } sun-brightdesktopmoon --- # Docker | Install Guide | Tradecraft Docs We have had multiple requests for official Docker documentation and will offer it as soon as possible. No release date is currently available. Several installers have been able to set up Docker successfully on their own, so if you have Docker experience you will likely be able to do so as well. The [Kubernetes](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes) documentation may be helpful to devise how to structure your deployment. You can also connect with other installers on our #tradecraft-ops Slack channel (see [Support](https://docs.tradecraft.fi/app-documentation/onboarding/support) ). The following is a _rough_ draft of a Docker setup provided by a kind member of our community. It may not result in a working deployment. * * * Download the necessary config files from here: [![Logo](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Fgitlab.com%2Fassets%2Ffavicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png&width=20&dpr=3&quality=100&sign=78cea15a&sv=2)obsidian.systems / Tradecraft Documentation · GitLabGitLabchevron-right](https://gitlab.com/obsidian.systems/tradecraft-docs) `git clone https://gitlab.com/obsidian.systems/tradecraft-docs.git` Be sure to update the image version numbers to use the latest version listed on our [App Changelog](https://docs.tradecraft.fi/app-changelog/) . The key is overriding the entry point on the container since the default image tries to launch right into the user daemon for the http server. [PreviousKuberneteschevron-left](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes) [NextWhitelist URLschevron-right](https://docs.tradecraft.fi/app-documentation/installation/integrations) Last updated 16 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon compose.yaml Copy name: tradecraft networks: tradecraft_net: name: tradecraft_net driver: bridge main_net: name: main_net external: true services: tradecraft-user-daemon: container_name: tradecraft-user-daemon image: public.ecr.aws/f7x1s5j9/obsidiansystems/tradecraft:0.0.16 command: - /etc/tradecraft/config.json env_file: - ./tradecraft.env environment: - OAUTH_PASSWORD=${tradecraft_OAUTH_PASSWORD} volumes: - ./tradecraft-config:/etc/tradecraft:ro restart: always networks: - tradecraft_net - main_net tradecraft-http-server: container_name: tradecraft-http-server image: public.ecr.aws/f7x1s5j9/obsidiansystems/tradecraft:0.0.16 entrypoint: ["/bin/http-server"] command: - /etc/tradecraft/http-config.json - "47501" env_file: - ./tradecraft.env volumes: - ./tradecraft-config:/etc/tradecraft:ro restart: always networks: - tradecraft_net - main_net tradecraft-ui: container_name: tradecraft-ui image: public.ecr.aws/f7x1s5j9/obsidiansystems/tradecraft-ui:0.0.16 env_file: - ./tradecraft.env volumes: - ./tradecraft-config/ui-backend-config.json:/config/backend/config.json:ro - ./tradecraft-config/oauth.json:/config/common/oauth.json:ro - ./tradecraft-config/route:/config/common/route:ro depends_on: - tradecraft-http-server restart: always networks: - tradecraft_net tradecraft-nginx: container_name: tradecraft-nginx image: "nginx:1.27.1" env_file: - ./tradecraft.env volumes: - ./tradecraft-nginx.conf:/etc/nginx/nginx.conf ports: - "8080:80" depends_on: - tradecraft-ui restart: always networks: - tradecraft_net healthcheck: test: ["CMD", "service", "nginx", "status"] interval: 30s timeout: 10s retries: 3 start_period: 60se nginx Copy events { worker_connections 1024; } http { # Tradecraft UI server { listen 80; server_name tradecraft.cantonwallet.com; location / { proxy_pass ; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # Redirect any other domains to the Tradecraft UI server { listen 80 default_server; server_name _; location / { return 301 $request_uri; } } } configs Copy root@sendcanton02:/data/canton/mainnet# ls -lah tradecraft-config/ total 28K drwxr-xr-x 2 root root 4.0K Sep 8 19:11 . drwxr-xr-x 9 byoung barg_ops 4.0K Sep 24 13:29 .. -rw-r--r-- 1 root root 670 Sep 8 18:07 config.json -rw-r--r-- 1 root root 380 Sep 8 19:00 http-config.json -rw-r--r-- 1 root root 134 Sep 8 16:51 oauth.json -rw-r--r-- 1 root root 35 Sep 8 16:52 route -rw-r--r-- 1 root root 166 Sep 8 19:11 ui-backend-config.json sun-brightdesktopmoon --- # Kubernetes | Install Guide | Tradecraft Docs 1 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#download-template-files) Download Template Files [![Logo](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2Fgitlab.com%2Fassets%2Ffavicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png&width=20&dpr=3&quality=100&sign=78cea15a&sv=2)obsidian.systems / Tradecraft Documentation · GitLabGitLabchevron-right](https://gitlab.com/obsidian.systems/tradecraft-docs) `git clone https://gitlab.com/obsidian.systems/tradecraft-docs.git` 2 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-configmaps) Create ConfigMaps Modify these 3 files with the proper values for your setup: * `tradecraft-config.yaml` * `tradecraft-ui-common-config.yaml` * `tradecraft-ui-backend-config.yaml` Suggested considerations: * Replace the OAuth URL as necessary in all three files. * tradecraft-config.yaml: * Use the correct `network` , either `devnet` , `testnet` or `mainnet` * Put the password for the `tradecraft` OAuth user in `tradecraft-secret.yaml` Keycloak auth0 ... specific instructions coming soon. * tradecraft-config.yaml: * Set the `oauth` `username` to the email address used during auth0 setup. * Set the `oauth` `url` to `https://your-tenant-id.us.auth0.com/oauth/token` * Add a line under `extra_params` for: `"audience": "https://canton.network.global"` * Set the `client_id` using the ID found in the auth0 dashboard on the page for the Tradecraft application settings. * tradecraft-ui-backend-config.yaml: * Set `oauth_request_url` to `https://your-tenant-id.us.auth0.com/oauth/token` * tradecraft-ui-common-config.yaml: * Set `oauth_auth_url` to `https://your-tenant-id.us.auth0.com/authorize` * Set `oauth_client_id` using the same value as above. You can find your Client ID here: ![](https://docs.tradecraft.fi/~gitbook/image?url=https%3A%2F%2F2003317725-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FzlzejnGiBLiJ01tQ2KPH%252Fuploads%252FdRR7uEEVRTSjoSFHcmi3%252Fmanage.auth0.com_dashboard_us_dev-djvrirvumz4m0o6t_users%2520%285%29.png%3Falt%3Dmedia%26token%3D177ba616-8af7-4cfc-9fad-3129525b2741&width=300&dpr=3&quality=100&sign=95cd1a4b&sv=2) The config files can reference environment variables which you’ll likely want to supply through Kubernetes secrets, like so: Copy kubectl apply -f tradecraft-secret.yaml Now go ahead and create the ConfigMaps on Kubernetes: Copy kubectl apply -f tradecraft-config.yaml kubectl apply -f tradecraft-ui-common-config.yaml kubectl apply -f tradecraft-ui-backend-config.yaml 3 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-deployment) Create Deployment Create a Deployment to start the Tradecraft containers: Copy kubectl apply -f tradecraft-deployment.yaml 4 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-service) Create Service To expose the deployment on the host we need a Service: Copy kubectl apply -f tradecraft-service.yaml 5 ### [hashtag](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-ingress) Create Ingress Finally, depending on how you expose things to the web, you probably need an Ingress. For example, if you use Traefik: Copy kubectl apply -f tradecraft-ingress.yaml [PreviousContainer Initializationchevron-left](https://docs.tradecraft.fi/app-documentation/installation/images-and-media) [NextDockerchevron-right](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/docker) Last updated 3 months ago Was this helpful? * [Download Template Files](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#download-template-files) * [Create ConfigMaps](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-configmaps) * [Create Deployment](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-deployment) * [Create Service](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-service) * [Create Ingress](https://docs.tradecraft.fi/app-documentation/installation/images-and-media/kubernetes#create-ingress) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Security | Tradecraft Docs Security | Tradecraft Docs https://docs.tradecraft.fi/security Updates feed for Security Wed, 14 Jan 2026 20:28:59 GMT https://docs.tradecraft.fi https://github.com/jpmonette/feed Copyright 2026 https://docs.tradecraft.fi/security#amm-exchange https://docs.tradecraft.fi/security#amm-exchange Wed, 14 Jan 2026 00:00:00 GMT ---