{"id":5637,"date":"2023-05-25T07:59:15","date_gmt":"2023-05-25T07:59:15","guid":{"rendered":"https:\/\/simplileap.com\/blog\/?p=5637"},"modified":"2023-11-22T13:37:23","modified_gmt":"2023-11-22T13:37:23","slug":"fireblocks-api-co-signer-setup","status":"publish","type":"post","link":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/","title":{"rendered":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer"},"content":{"rendered":"<p><a href=\"https:\/\/www.fireblocks.com\/\" rel=\"nofollow\">Fireblocks<\/a> is a platform as a service which helps us to create any blockchain based products easily and also to manage digital asset operation. They also provide well documented REST API for various operations related to vault, internal wallets, external wallets, contracts, exchange accounts, fiat accounts, payments and transactions. Fireblocks also have a concept called gas station which is very similar to gas pump in tatum.io where the gas fee for minting can be paid using a single gas station rather than deducting the gas fee from each user\u2019s wallet.<\/p>\n<h2>What is Fireblocks API Co-Signer<\/h2>\n<p>API co-signer is a component in the system which is used to securely sign the transactions initiated via the API. It holds an MPC key and a configuration change key for automatically signing and approving the transactions. It is useful to users where the number of transactions are more and each time approving each transaction manually through console or mobile app is a tedious task. So to easily and automatically sign and approve each transaction we can set up co-signer and configure it to sign each transaction.<\/p>\n<figure id=\"attachment_5643\" aria-describedby=\"caption-attachment-5643\" style=\"width: 2560px\" class=\"wp-caption alignnone\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-5643 size-full\" style=\"border-radius: 10px; box-shadow: 0px 0px 10px #bdbdbd;\" src=\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\" alt=\"fireblocks API co-signer setup\" width=\"2560\" height=\"1344\" srcset=\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp 2560w, https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-300x158.webp 300w, https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-1024x538.webp 1024w, https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-768x403.webp 768w, https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-1536x807.webp 1536w, https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-2048x1075.webp 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><figcaption id=\"caption-attachment-5643\" class=\"wp-caption-text\">fireblocks API co-signer<\/figcaption><\/figure>\n<h2><\/h2>\n<h2>API Co-Signer callback handler<\/h2>\n<p>A callback handler can also be attached to the co-signer which gives us more freedom to even filter out transactions and choose which one needs to be signed. For example if you have the requirement to sign transactions only from a particular source or sign transactions automatically using co-signer only if it is below a certain threshold, you can easily get all the data for a transaction in a JSON format and write code in the callback handler to do required operations.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>In this tutorial we are more focusing on setup of cosigner so we are following API co-signer without callback handler.<\/strong><\/span><\/p>\n<h2>Steps to setup Fireblocks API Co-Signer<\/h2>\n<p>The API co-signer requires a secure server so Fireblocks recommends an Intel SGX (Software Guard Extensions) server from either Azure, IBM or users can also setup an on-premise server. In this tutorial we will be focusing on Co-signer setup in an Azure SQL server.<\/p>\n<p>1. First step is to login to azure console to deploy a virtual machine (SGX virtual machine) with below mentioned configuration<\/p>\n<p><strong>Image<\/strong> : Ubuntu 20.04 LTS(Canonical)<br \/>\n<strong>Region<\/strong> : Select you region (Make sure to check SGX server availability in your region, if it is not available, please select some other nearest location)<br \/>\n<strong>Generation<\/strong> : Gen 2<br \/>\n<strong>Size<\/strong> : Standard_DC4s_V3<br \/>\n<strong>Ram<\/strong> : 32 GB<\/p>\n<p>2. Once these configurations are select, review the selections and deploy a new virtual machine.<\/p>\n<p>3. Once the server is deployed, you can get the IP address and the username \/ password or SSH key generated while doing the server deployment.<br \/>\n4. Login through SSH using putty and go to root mode using command<\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">sudo \u2013i<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n<p>5. Now from root mode, we need to download and install co-signer script. So for getting the download URL, head over to the fireblocks console and click on the copy icon in the Download Co-Signer script section in settings -&gt; general tab. Then run command<\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">\u2013 curl \u2013o cosigner \u201cPAST COSIGNER DOWNLOAD LINK HERE\u201d .<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n<p>(Please keep the double quotes as it is in the command.<br \/>\n6. Change the script permissions to be executable by running command<\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\">\n<pre class=\"dm-pre-admin-side\">chmod +x cosigner<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><br \/>\n7. Start the cosigner setup\u00a0 using .\/cosigner setup which will install co-signer, docker, docker-composer and other required files.<br \/>\n8. This script will also ask for a pairing token which can be taken from fireblocks console -&gt; settings -&gt; users and hover on the pending setup and click on pairing token copy symbol. Enter your pairing token.<br \/>\n9. The script will then ask for entering a callback URL. In this tutorial we are installing the Co-signer without a callback so you can just hit enter without adding any callback URL.<br \/>\n10. At the end of the process, the API co-signer generated a JSON config file which you can use in future to change the cosigner configurations.<br \/>\n11. Start the API cosigner using command<\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\">\n<pre class=\"dm-pre-admin-side\">.\/cosigner start<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><br \/>\n12. If all the setup is correct and if this is the first time you are running cosigner the workspace owner will get an approval request for MPC key share.<br \/>\n13. Once approved your co-signer is ready to sign the transactions now. In order to check if the API Co-signer is running, run the following command which is docker ps \u2013a. This will show you the docker images which are currently running.<\/p>\n<h3>After following above steps if your co-signer is not working, then please follow below steps and re-install your co-signer<\/h3>\n<p><strong>Run below commands in the same sequence<\/strong><\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">.\/cosigner stop\r\n\r\ndocker kill $(docker ps -q)\r\n\r\ndocker rm $(docker ps -aq)\r\n\r\nDocker rmi $(docker images -q)\r\n\r\nrm .local_config\r\n\r\nrm .revision\r\n\r\nrm config.json docker-composer-init.yml\r\n\r\ndocker-composer.yml\r\n\r\nrm -rf \/databases\r\n\r\n.\/cosigner setup<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n<p>Here it will ask you to paste the pairing token from the console, <strong>please refresh the page before copying the pairing token as it expires after some time<\/strong>.<\/p>\n<p><strong>Run command<\/strong><\/p>\n<div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">.\/cosigner start<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n<p>This was the information about Fireblocks API co-signer setup and we tried covering all the scenarios and fixes after facing the difficulties while setting it up for ourselves. Please feel free to reach out to us in case of any queries regarding API Co-signer setup our team will be glad to help you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fireblocks is a platform as a service which helps us to create any blockchain based products easily and also to manage digital asset operation. They also provide well documented REST API for various operations related to vault, internal wallets, external wallets, contracts, exchange accounts, fiat accounts, payments and transactions. Fireblocks also have a concept called [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":5643,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[33],"tags":[],"class_list":["post-5637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap<\/title>\n<meta name=\"description\" content=\"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler &amp; step to debug Fireblocks API cosigner\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap\" \/>\n<meta property=\"og:description\" content=\"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler &amp; step to debug Fireblocks API cosigner\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"Simplileap\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/simplileap\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-25T07:59:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-22T13:37:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1344\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Keshav Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@simplileap\" \/>\n<meta name=\"twitter:site\" content=\"@simplileap\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\"},\"author\":{\"name\":\"Keshav Sharma\",\"@id\":\"https:\/\/simplileap.com\/blog\/#\/schema\/person\/8ebca1097576486b58e3ece537774b7c\"},\"headline\":\"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer\",\"datePublished\":\"2023-05-25T07:59:15+00:00\",\"dateModified\":\"2023-11-22T13:37:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\"},\"wordCount\":1009,\"publisher\":{\"@id\":\"https:\/\/simplileap.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\",\"articleSection\":[\"Technical\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\",\"url\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\",\"name\":\"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap\",\"isPartOf\":{\"@id\":\"https:\/\/simplileap.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\",\"datePublished\":\"2023-05-25T07:59:15+00:00\",\"dateModified\":\"2023-11-22T13:37:23+00:00\",\"description\":\"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler & step to debug Fireblocks API cosigner\",\"breadcrumb\":{\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage\",\"url\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\",\"contentUrl\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp\",\"width\":2560,\"height\":1344},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/simplileap.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/simplileap.com\/blog\/#website\",\"url\":\"https:\/\/simplileap.com\/blog\/\",\"name\":\"Simplileap\",\"description\":\"Building Digital Future\",\"publisher\":{\"@id\":\"https:\/\/simplileap.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/simplileap.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/simplileap.com\/blog\/#organization\",\"name\":\"Simplileap\",\"url\":\"https:\/\/simplileap.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/simplileap.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2020\/11\/android-chrome-512x512-1.png\",\"contentUrl\":\"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2020\/11\/android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Simplileap\"},\"image\":{\"@id\":\"https:\/\/simplileap.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/simplileap\",\"https:\/\/x.com\/simplileap\",\"https:\/\/www.instagram.com\/simplileap\/\",\"https:\/\/www.linkedin.com\/company\/simplileap\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/simplileap.com\/blog\/#\/schema\/person\/8ebca1097576486b58e3ece537774b7c\",\"name\":\"Keshav Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/simplileap.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/26efa3a522938922500a856b7184596d1fff451717cdb3673fe826a01022022f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/26efa3a522938922500a856b7184596d1fff451717cdb3673fe826a01022022f?s=96&d=mm&r=g\",\"caption\":\"Keshav Sharma\"},\"description\":\"Co-Founder Simplileap Passionate Full Stack Developer with an unwavering enthusiasm for technology and a relentless drive for continuous learning with more than 10 years of experience in Web Development, SEO and Software Development. Committed to pushing boundaries, I thrive in dynamic environments where I can leverage my expertise in front-end and back-end development to create innovative solutions. With a strong foundation in various programming languages and frameworks, I am dedicated to staying updated with the latest industry trends and incorporating them into my work.\",\"sameAs\":[\"https:\/\/simplileap.com\/blog\",\"https:\/\/www.linkedin.com\/in\/keshav-sharma-dev\/\"],\"url\":\"https:\/\/simplileap.com\/blog\/author\/keshav\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap","description":"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler & step to debug Fireblocks API cosigner","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/","og_locale":"en_US","og_type":"article","og_title":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap","og_description":"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler & step to debug Fireblocks API cosigner","og_url":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/","og_site_name":"Simplileap","article_publisher":"https:\/\/www.facebook.com\/simplileap","article_published_time":"2023-05-25T07:59:15+00:00","article_modified_time":"2023-11-22T13:37:23+00:00","og_image":[{"width":2560,"height":1344,"url":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp","type":"image\/webp"}],"author":"Keshav Sharma","twitter_card":"summary_large_image","twitter_creator":"@simplileap","twitter_site":"@simplileap","twitter_misc":{"Written by":"Keshav Sharma","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#article","isPartOf":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/"},"author":{"name":"Keshav Sharma","@id":"https:\/\/simplileap.com\/blog\/#\/schema\/person\/8ebca1097576486b58e3ece537774b7c"},"headline":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer","datePublished":"2023-05-25T07:59:15+00:00","dateModified":"2023-11-22T13:37:23+00:00","mainEntityOfPage":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/"},"wordCount":1009,"publisher":{"@id":"https:\/\/simplileap.com\/blog\/#organization"},"image":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp","articleSection":["Technical"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/","url":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/","name":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer - Simplileap","isPartOf":{"@id":"https:\/\/simplileap.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage"},"image":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp","datePublished":"2023-05-25T07:59:15+00:00","dateModified":"2023-11-22T13:37:23+00:00","description":"Find here a comprehensive tutorial for Fireblocks API co-signer setup on VM without callback handler & step to debug Fireblocks API cosigner","breadcrumb":{"@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#primaryimage","url":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp","contentUrl":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2023\/05\/Fireblocks-API-Cosigner-scaled.webp","width":2560,"height":1344},{"@type":"BreadcrumbList","@id":"https:\/\/simplileap.com\/blog\/technical\/fireblocks-api-co-signer-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simplileap.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Fireblocks API Co-Signer Setup | All you need to know about Fireblocks API Co-Signer"}]},{"@type":"WebSite","@id":"https:\/\/simplileap.com\/blog\/#website","url":"https:\/\/simplileap.com\/blog\/","name":"Simplileap","description":"Building Digital Future","publisher":{"@id":"https:\/\/simplileap.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simplileap.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/simplileap.com\/blog\/#organization","name":"Simplileap","url":"https:\/\/simplileap.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simplileap.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2020\/11\/android-chrome-512x512-1.png","contentUrl":"https:\/\/simplileap.com\/blog\/wp-content\/uploads\/2020\/11\/android-chrome-512x512-1.png","width":512,"height":512,"caption":"Simplileap"},"image":{"@id":"https:\/\/simplileap.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/simplileap","https:\/\/x.com\/simplileap","https:\/\/www.instagram.com\/simplileap\/","https:\/\/www.linkedin.com\/company\/simplileap\/"]},{"@type":"Person","@id":"https:\/\/simplileap.com\/blog\/#\/schema\/person\/8ebca1097576486b58e3ece537774b7c","name":"Keshav Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simplileap.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/26efa3a522938922500a856b7184596d1fff451717cdb3673fe826a01022022f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/26efa3a522938922500a856b7184596d1fff451717cdb3673fe826a01022022f?s=96&d=mm&r=g","caption":"Keshav Sharma"},"description":"Co-Founder Simplileap Passionate Full Stack Developer with an unwavering enthusiasm for technology and a relentless drive for continuous learning with more than 10 years of experience in Web Development, SEO and Software Development. Committed to pushing boundaries, I thrive in dynamic environments where I can leverage my expertise in front-end and back-end development to create innovative solutions. With a strong foundation in various programming languages and frameworks, I am dedicated to staying updated with the latest industry trends and incorporating them into my work.","sameAs":["https:\/\/simplileap.com\/blog","https:\/\/www.linkedin.com\/in\/keshav-sharma-dev\/"],"url":"https:\/\/simplileap.com\/blog\/author\/keshav\/"}]}},"_links":{"self":[{"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/posts\/5637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/comments?post=5637"}],"version-history":[{"count":9,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/posts\/5637\/revisions"}],"predecessor-version":[{"id":5647,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/posts\/5637\/revisions\/5647"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/media\/5643"}],"wp:attachment":[{"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/media?parent=5637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/categories?post=5637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simplileap.com\/blog\/wp-json\/wp\/v2\/tags?post=5637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}