CINXE.COM
GitHub - stingbo/easyexchange: PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-74231a1f3bbb.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-8a995f0bacd4.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-f37fb7684b1f.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-9ac301c3ebe5.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-cd826e8636dc.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f91b0f603451.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-83beb16e0ecf.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-6e122dab64fc.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-18119e682df0.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-aaa714e5674d.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-0a3c53b9d1c2.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ea73c9cb5377.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-4fce88777fa8.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-0210be90f4d3.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_quote_reply_fix","copilot_immersive_issue_preview","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_no_floating_button","copilot_topics_as_references","copilot_read_shared_conversation","copilot_duplicate_thread","copilot_buffered_streaming","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_gateway_parse_params","github_models_o3_mini_streaming","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","marketing_pages_search_explore_provider","primer_react_css_modules_ga","react_data_router_pull_requests","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_proxima_australia_update","viewscreen_sandbox","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issue_types_prevent_private_type_creation","refresh_image_video_src","react_router_dispose_on_disconnect","codespaces_prebuild_region_target_update","turbo_app_id_restore","copilot_code_review_sign_up_closed"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-1ad576e595f5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-46b9f4874d95.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-75968cfb5298.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-62d275b7ddd9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a90ac05d2469.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-efa32db3a345.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-394f8eb34f19.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-25113a65b77f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-2906d7-2a07a295af40.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-a03ee12d659a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-b6294cf703b7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-947061-e7a6c4a19f98.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-eb3147a21e96.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-87a4ae-4c160a67a3f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-e429cff6ceb1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-1f167e0c2aee.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_virtualized-list_es_index_js-node_modules_github_template-parts_lib_index_js-94dc7a2157c1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-70450e-4b93df70b903.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_ref-selector_ts-3e9d848bab5f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/codespaces-f76fb2dd7b91.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-3eebbd-0763620ad7bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_decorators_js-node_modules_delegated-events_di-e161aa-9d41fb1b6c9e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_github_remote--3c9c82-b71ef90fbdc7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/repositories-e6e7c7ff47a3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_catalyst_lib_inde-dbbea9-26cce2010167.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/code-menu-1c0aedc134b1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-602097a4b0db.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-0bc17999cb79.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-cf2f2ab8dab4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-62da9f-2df2f32ec596.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-9a233856b02c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-57956eade845.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.8157a56b30ae88a1b356.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.8157a56b30ae88a1b356.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css" /> <title>GitHub - stingbo/easyexchange: PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等</title> <meta name="route-pattern" content="/:user_id/:repository" data-turbo-transient> <meta name="route-controller" content="files" data-turbo-transient> <meta name="route-action" content="disambiguate" data-turbo-transient> <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb"> <meta name="request-id" content="D0FA:1DA20A:1A26F6:22FA39:67E74FA6" data-pjax-transient="true"/><meta name="html-safe-nonce" content="11e0c783d439deba8c167a2407c6e070be5008971699399bc8fd217f47879ed1" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMEZBOjFEQTIwQToxQTI2RjY6MjJGQTM5OjY3RTc0RkE2IiwidmlzaXRvcl9pZCI6IjU2MjQ3ODUzODg0NDIxNzc0NDYiLCJyZWdpb25fZWRnZSI6InNvdXRoZWFzdGFzaWEiLCJyZWdpb25fcmVuZGVyIjoic291dGhlYXN0YXNpYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="8e0dd86863ed07cabe63ccb88ea9017e0b01e7c0cb4b1f92300e336ba9203d28" data-pjax-transient="true"/> <meta name="hovercard-subject-tag" content="repository:335632294" data-turbo-transient> <meta name="github-keyboard-shortcuts" content="repository,copilot" data-turbo-transient="true" /> <meta name="selected-link" value="repo_source" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="analytics-location" content="/<user-name>/<repo-name>" data-turbo-transient="true" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 - stingbo/easyexchange"> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/stingbo/easyexchange" /> <meta name="twitter:image" content="https://opengraph.githubassets.com/b61c1f5f914463062e7eec5b8c9c822d93a54a985fc8e749331cf5e3c39fbd51/stingbo/easyexchange" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="GitHub - stingbo/easyexchange: PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等" /><meta name="twitter:description" content="PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 - stingbo/easyexchange" /> <meta property="og:image" content="https://opengraph.githubassets.com/b61c1f5f914463062e7eec5b8c9c822d93a54a985fc8e749331cf5e3c39fbd51/stingbo/easyexchange" /><meta property="og:image:alt" content="PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 - stingbo/easyexchange" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="GitHub - stingbo/easyexchange: PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等" /><meta property="og:url" content="https://github.com/stingbo/easyexchange" /><meta property="og:description" content="PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 - stingbo/easyexchange" /> <meta name="hostname" content="github.com"> <meta name="expected-hostname" content="github.com"> <meta http-equiv="x-pjax-version" content="de97acdfed47f9fb61814ae236bb7343666df83e298b7bdbb2f7cc7574846211" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="e26f9f0ba624ee85cc7ac057d8faa8618a4f25a85eab052c33d018ac0f6b1a46" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="159e03504eed5183f9787c72780a7d8c1460af30746ab09d728b048c41719efa" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="f2d91a2ff8587586cba3d4cfc1be461406926757eaf5ec500d81977d36511c4f" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <meta data-hydrostats="publish"> <meta name="go-import" content="github.com/stingbo/easyexchange git https://github.com/stingbo/easyexchange.git"> <meta name="octolytics-dimension-user_id" content="12377271" /><meta name="octolytics-dimension-user_login" content="stingbo" /><meta name="octolytics-dimension-repository_id" content="335632294" /><meta name="octolytics-dimension-repository_nwo" content="stingbo/easyexchange" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="335632294" /><meta name="octolytics-dimension-repository_network_root_nwo" content="stingbo/easyexchange" /> <link rel="canonical" href="https://github.com/stingbo/easyexchange" data-turbo-transient> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <meta name="release" content="a9eda7596880734baf8173cd8eea1e76b39920ad"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-2ea4e93613c0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-79d6a754ebf9.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.8157a56b30ae88a1b356.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-4898d1bf4b51.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-730dca81d0a2.js"></script> <header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark> <h2 class="sr-only">Navigation Menu</h2> <button type="button" class="HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation"> <span class="d-none">Toggle navigation</span> </button> <div class="d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1"> <div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto"> <div class="flex-1"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content"> <span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div></span> </span> </button> </div> <a class="mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav" href="/" aria-label="Homepage" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Logomark;ref_loc:Header"}"> <svg height="32" aria-hidden="true" viewBox="0 0 24 24" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <div class="flex-1 flex-order-2 text-right"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange" class="HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="f2501426c467867e2ab5b12c90d2802283a85e5b5d9434a18e4d552f1792f0e4" data-analytics-event="{"category":"Marketing nav","action":"click to Sign in","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> </div> <div class="HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0"> <div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0"> <nav class="HeaderMenu-nav" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Product <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"github_copilot","context":"product","tag":"link","label":"github_copilot_link_product_navbar"}" href="https://github.com/features/copilot"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">GitHub Copilot</div> Write better code with AI </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"security","context":"product","tag":"link","label":"security_link_product_navbar"}" href="https://github.com/features/security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Security</div> Find and fix vulnerabilities </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"actions","context":"product","tag":"link","label":"actions_link_product_navbar"}" href="https://github.com/features/actions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3"> <path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path> </svg> <div> <div class="color-fg-default h4">Actions</div> Automate any workflow </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"codespaces","context":"product","tag":"link","label":"codespaces_link_product_navbar"}" href="https://github.com/features/codespaces"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3"> <path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> <div> <div class="color-fg-default h4">Codespaces</div> Instant dev environments </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"issues","context":"product","tag":"link","label":"issues_link_product_navbar"}" href="https://github.com/features/issues"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3"> <path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path> </svg> <div> <div class="color-fg-default h4">Issues</div> Plan and track work </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"code_review","context":"product","tag":"link","label":"code_review_link_product_navbar"}" href="https://github.com/features/code-review"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3"> <path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Review</div> Manage code changes </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"discussions","context":"product","tag":"link","label":"discussions_link_product_navbar"}" href="https://github.com/features/discussions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Discussions</div> Collaborate outside of code </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"code_search","context":"product","tag":"link","label":"code_search_link_product_navbar"}" href="https://github.com/features/code-search"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3"> <path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Search</div> Find more, search less </div> </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="product-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"all_features","context":"product","tag":"link","label":"all_features_link_product_navbar"}" href="https://github.com/features"> All features </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"documentation","context":"product","tag":"link","label":"documentation_link_product_navbar"}" href="https://docs.github.com"> Documentation <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"github_skills","context":"product","tag":"link","label":"github_skills_link_product_navbar"}" href="https://skills.github.com"> GitHub Skills <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"blog","context":"product","tag":"link","label":"blog_link_product_navbar"}" href="https://github.blog"> Blog <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Solutions <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"enterprises","context":"solutions","tag":"link","label":"enterprises_link_solutions_navbar"}" href="https://github.com/enterprise"> Enterprises </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"small_and_medium_teams","context":"solutions","tag":"link","label":"small_and_medium_teams_link_solutions_navbar"}" href="https://github.com/team"> Small and medium teams </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"startups","context":"solutions","tag":"link","label":"startups_link_solutions_navbar"}" href="https://github.com/enterprise/startups"> Startups </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"nonprofits","context":"solutions","tag":"link","label":"nonprofits_link_solutions_navbar"}" href="/solutions/industry/nonprofits"> Nonprofits </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devsecops","context":"solutions","tag":"link","label":"devsecops_link_solutions_navbar"}" href="/solutions/use-case/devsecops"> DevSecOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"solutions","tag":"link","label":"devops_link_solutions_navbar"}" href="/solutions/use-case/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ci_cd","context":"solutions","tag":"link","label":"ci_cd_link_solutions_navbar"}" href="/solutions/use-case/ci-cd"> CI/CD </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_use_cases","context":"solutions","tag":"link","label":"view_all_use_cases_link_solutions_navbar"}" href="/solutions/use-case"> View all use cases </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"healthcare","context":"solutions","tag":"link","label":"healthcare_link_solutions_navbar"}" href="/solutions/industry/healthcare"> Healthcare </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"financial_services","context":"solutions","tag":"link","label":"financial_services_link_solutions_navbar"}" href="/solutions/industry/financial-services"> Financial services </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"manufacturing","context":"solutions","tag":"link","label":"manufacturing_link_solutions_navbar"}" href="/solutions/industry/manufacturing"> Manufacturing </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"government","context":"solutions","tag":"link","label":"government_link_solutions_navbar"}" href="/solutions/industry/government"> Government </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_industries","context":"solutions","tag":"link","label":"view_all_industries_link_solutions_navbar"}" href="/solutions/industry"> View all industries </a></li> </ul> </div> </div> <div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold"> <a href="/solutions"> View all solutions <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Resources <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span> <ul class="list-style-none f5" aria-labelledby="resources-topics-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ai","context":"resources","tag":"link","label":"ai_link_resources_navbar"}" href="/resources/articles/ai"> AI </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"resources","tag":"link","label":"devops_link_resources_navbar"}" href="/resources/articles/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"security","context":"resources","tag":"link","label":"security_link_resources_navbar"}" href="/resources/articles/security"> Security </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"software_development","context":"resources","tag":"link","label":"software_development_link_resources_navbar"}" href="/resources/articles/software-development"> Software Development </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all","context":"resources","tag":"link","label":"view_all_link_resources_navbar"}" href="/resources/articles"> View all </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="resources-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"learning_pathways","context":"resources","tag":"link","label":"learning_pathways_link_resources_navbar"}" href="https://resources.github.com/learn/pathways"> Learning Pathways <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"events_amp_webinars","context":"resources","tag":"link","label":"events_amp_webinars_link_resources_navbar"}" href="https://resources.github.com"> Events & Webinars <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ebooks_amp_whitepapers","context":"resources","tag":"link","label":"ebooks_amp_whitepapers_link_resources_navbar"}" href="https://github.com/resources/whitepapers"> Ebooks & Whitepapers </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"customer_stories","context":"resources","tag":"link","label":"customer_stories_link_resources_navbar"}" href="https://github.com/customer-stories"> Customer Stories </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"partners","context":"resources","tag":"link","label":"partners_link_resources_navbar"}" href="https://partner.github.com"> Partners <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"executive_insights","context":"resources","tag":"link","label":"executive_insights_link_resources_navbar"}" href="https://github.com/solutions/executive-insights"> Executive Insights </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Open Source <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"github_sponsors","context":"open_source","tag":"link","label":"github_sponsors_link_open_source_navbar"}" href="/sponsors"> <div> <div class="color-fg-default h4">GitHub Sponsors</div> Fund open source developers </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"the_readme_project","context":"open_source","tag":"link","label":"the_readme_project_link_open_source_navbar"}" href="https://github.com/readme"> <div> <div class="color-fg-default h4">The ReadME Project</div> GitHub community articles </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span> <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"topics","context":"open_source","tag":"link","label":"topics_link_open_source_navbar"}" href="https://github.com/topics"> Topics </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"trending","context":"open_source","tag":"link","label":"trending_link_open_source_navbar"}" href="https://github.com/trending"> Trending </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"collections","context":"open_source","tag":"link","label":"collections_link_open_source_navbar"}" href="https://github.com/collections"> Collections </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Enterprise <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"enterprise_platform","context":"enterprise","tag":"link","label":"enterprise_platform_link_enterprise_navbar"}" href="/enterprise"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3"> <path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path> </svg> <div> <div class="color-fg-default h4">Enterprise platform</div> AI-powered developer platform </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span> <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"advanced_security","context":"enterprise","tag":"link","label":"advanced_security_link_enterprise_navbar"}" href="https://github.com/enterprise/advanced-security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Advanced Security</div> Enterprise-grade security features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"copilot_for_business","context":"enterprise","tag":"link","label":"copilot_for_business_link_enterprise_navbar"}" href="/features/copilot/copilot-business"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">Copilot for business</div> Enterprise-grade AI features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"premium_support","context":"enterprise","tag":"link","label":"premium_support_link_enterprise_navbar"}" href="/premium-support"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Premium Support</div> Enterprise-grade 24/7 support </div> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{"location":"navbar","action":"pricing","context":"global","tag":"link","label":"pricing_link_global_navbar"}" href="https://github.com/pricing">Pricing</a> </li> </ul> </nav> <div class="d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3"> <qbsearch-input class="search-input" data-scope="repo:stingbo/easyexchange" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="B-yfH9RXrFf_sppBt7WFM98Cyd1Gz9cfH3lwifq2TE9len2-UIU7kox1mHev0VlZ8iec15uduhadgIaqNiyQOg" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="stingbo/easyexchange" data-current-org="" data-current-owner="stingbo" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> <div class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded" data-action="click:qbsearch-input#searchInputContainerClicked" > <button type="button" class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none" data-target="qbsearch-input.inputButton" aria-label="Search or jump to…" aria-haspopup="dialog" placeholder="Search or jump to..." data-hotkey=s,/ autocapitalize="off" data-analytics-event="{"location":"navbar","action":"searchbar","context":"global","tag":"input","label":"searchbar_input_global_navbar"}" data-action="click:qbsearch-input#handleExpand" > <div class="mr-2 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </div> <span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span> <div class="d-flex" data-target="qbsearch-input.hotkeyIndicator"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> </div> </button> <input type="hidden" name="type" class="js-site-search-type-field"> <div class="Overlay--hidden " data-modal-dialog-overlay> <modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto"> <h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1> <div class="Overlay-body Overlay-body--paddingNone"> <div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container" style="border-radius: 12px;" data-target="qbsearch-input.queryBuilderContainer" hidden > <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get"> <query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder"> <div class="FormControl FormControl--fullWidth"> <label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only"> Search </label> <div class="QueryBuilder-StyledInput width-fit " data-target="query-builder.styledInput" > <span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </span> <div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer"> <div aria-hidden="true" class="QueryBuilder-StyledInputContent" data-target="query-builder.styledInputContent" ></div> <div class="QueryBuilder-InputWrapper"> <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div> <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-3865ba82-261f-47b6-aafc-d80d216cc653" data-target="query-builder.input" data-action=" input:query-builder#inputChange blur:query-builder#inputBlur keydown:query-builder#inputKeydown focus:query-builder#inputFocus " data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" /> </div> </div> <span class="sr-only" id="query-builder-test-clear">Clear</span> <button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action=" click:query-builder#clear focus:query-builder#clearButtonFocus blur:query-builder#clearButtonBlur " variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual"> <path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path> </svg> </button> </div> <template id="search-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </template> <template id="code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="file-code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code"> <path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path> </svg> </template> <template id="history-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history"> <path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path> </svg> </template> <template id="repo-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </template> <template id="bookmark-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark"> <path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="plus-circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill"> <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path> </svg> </template> <template id="trash-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash"> <path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path> </svg> </template> <template id="team-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path> </svg> </template> <template id="project-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project"> <path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path> </svg> </template> <template id="pencil-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil"> <path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path> </svg> </template> <template id="copilot-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot"> <path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="copilot-error-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot-error"> <path d="M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z"></path> </svg> </template> <template id="workflow-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-workflow"> <path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="book-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> </template> <template id="code-review-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-review"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="codespaces-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-codespaces"> <path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> </template> <template id="comment-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="comment-discussion-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> </template> <template id="organization-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization"> <path d="M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="rocket-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-rocket"> <path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </template> <template id="shield-check-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield-check"> <path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="heart-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> </template> <template id="server-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-server"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="globe-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-globe"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path> </svg> </template> <template id="issue-opened-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </template> <template id="device-mobile-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile"> <path d="M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path> </svg> </template> <template id="package-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package"> <path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path> </svg> </template> <template id="credit-card-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-credit-card"> <path d="M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z"></path><path d="M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z"></path> </svg> </template> <template id="play-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </template> <template id="gift-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gift"> <path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"></path> </svg> </template> <template id="code-square-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="device-desktop-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-desktop"> <path d="M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z"></path> </svg> </template> <div class="position-relative"> <ul role="listbox" class="ActionListWrap QueryBuilder-ListWrap" aria-label="Suggestions" data-action=" combobox-commit:query-builder#comboboxCommit mousedown:query-builder#resultsMousedown " data-target="query-builder.resultsList" data-persist-list=false id="query-builder-test-results" ></ul> </div> <div class="FormControl-inlineValidation" id="validation-3865ba82-261f-47b6-aafc-d80d216cc653" hidden="hidden"> <span class="FormControl-inlineValidation--visual"> <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg> </span> <span></span> </div> </div> <div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div> </query-builder></form> <div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt"> <a target="_blank" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2">Search syntax tips</a> <div class="d-flex flex-1"></div> </div> </div> </div> </div> </modal-dialog></div> </div> <div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div> <div class="color-fg-default"> <dialog-helper> <dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="feedback-dialog" aria-modal="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="feedback-dialog-title"> Provide feedback </h1> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="feedback-dialog-title"> <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="fyVUwIlddSGW7r0tv1biAnyatrF13dw7rtDx3T59f/OxwZ2NuUJGUKGGh5GA1FG9sbHdER+hdFI2MZ466EnQeA==" /> <p>We read every piece of feedback, and take your input very seriously.</p> <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea> <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox"> <label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label> </form></div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback </button> </div> </dialog></dialog-helper> <custom-scopes data-target="qbsearch-input.customScopesManager"> <dialog-helper> <dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="custom-scopes-dialog" aria-modal="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header Overlay-header--divided"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="custom-scopes-dialog-title"> Saved searches </h1> <h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="custom-scopes-dialog-title"> <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="TInaJd2PiSyGl7+B6Hfuwp2dPNenY5yk+ghq057cVpy1wkYcvHehJ+oy4PX6PwebJUXbLwogPl8G0lhRLw18nw==" /> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField"> <div class="form-group"> <label for="custom_scope_name">Name</label> <auto-check src="/search/custom_scopes/check_name" required only-validate-on-blur="false"> <input type="text" name="custom_scope_name" id="custom_scope_name" data-target="custom-scopes.customScopesNameField" class="form-control" autocomplete="off" placeholder="github-ruby" required maxlength="50"> <input type="hidden" data-csrf="true" value="k97Sw9ez0RTupLmxMytPpJrTRam0RG5mzrY/wNlc8Adma08xTlSZ6pnc/AFdP0Armbp6uppDivG7Hvey+eK/3Q==" /> </auto-check> </div> <div class="form-group"> <label for="custom_scope_query">Query</label> <input type="text" name="custom_scope_query" id="custom_scope_query" data-target="custom-scopes.customScopesQueryField" class="form-control" autocomplete="off" placeholder="(repo:mona/a OR repo:mona/b) AND lang:python" required maxlength="500"> </div> <p class="text-small color-fg-muted"> To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>. </p> </form> </div> <div data-target="custom-scopes.manageCustomScopesForm"> <div data-target="custom-scopes.list"></div> </div> </div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search </button> </div> </dialog></dialog-helper> </custom-scopes> </div> </qbsearch-input> <div class="position-relative HeaderMenu-link-wrap d-lg-inline-block"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange" class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1" style="margin-left: 12px;" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="f2501426c467867e2ab5b12c90d2802283a85e5b5d9434a18e4d552f1792f0e4" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> <a href="/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=stingbo%2Feasyexchange" class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="f2501426c467867e2ab5b12c90d2802283a85e5b5d9434a18e4d552f1792f0e4" data-analytics-event="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/<user-name>/<repo-name>;ref_cta:Sign up;ref_loc:header logged out"}" > Sign up </a> <button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Reseting focus</button> </div> </div> </div> </div> </header> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-61a37771-3711-4862-b623-6704c47a96d9" aria-labelledby="tooltip-7b2eafd8-fbfd-4be6-924a-144007a690fe" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-7b2eafd8-fbfd-4be6-924a-144007a690fe" for="icon-button-61a37771-3711-4862-b623-6704c47a96d9" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled data-project-hovercards-enabled > <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class=""> <main id="js-repo-pjax-container" > <div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--page-header-bgColor, var(--color-page-header-bg));" data-turbo-replace> <div class="d-flex flex-nowrap flex-justify-end mb-3 px-3 px-lg-5" style="gap: 1rem;"> <div class="flex-auto min-width-0 width-fit"> <div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> <span class="author flex-self-stretch" itemprop="author"> <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/stingbo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/stingbo"> stingbo </a> </span> <span class="mx-1 flex-self-stretch color-fg-muted">/</span> <strong itemprop="name" class="mr-2 flex-self-stretch"> <a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/stingbo/easyexchange">easyexchange</a> </strong> <span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span> </div> </div> <div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;"> <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;"> <li> <a href="/login?return_to=%2Fstingbo%2Feasyexchange" rel="nofollow" id="repository-details-watch-button" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="8401e638a8cf6d9e995a66d8b23b9edfc93ecabebdcfec047a03dbeb8d2735b2" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2"> <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path> </svg>Notifications </a> <tool-tip id="tooltip-a6dee44c-3769-4105-be21-a01e179b2874" for="repository-details-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip> </li> <li> <a icon="repo-forked" id="fork-button" href="/login?return_to=%2Fstingbo%2Feasyexchange" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":335632294,"auth_type":"LOG_IN","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="51ba09fa34630b2548af40c810c2b332b42a203a2cad8b5fdb36d17c4cb91291" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg>Fork <span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="31" data-view-component="true" class="Counter">31</span> </a> </li> <li> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fstingbo%2Feasyexchange" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":335632294,"auth_type":"LOG_IN","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="58eb9352a840ad7d021b4627e0e821c773accaa2b0ea9d9e54b267c1f7baaa55" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="84 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="84" data-view-component="true" class="Counter js-social-count">84</span> </a></div> </li> </ul> </div> </div> <div id="responsive-meta-container" data-turbo-replace> <div class="d-block d-md-none mb-2 px-3 px-md-4 px-lg-5"> <p class="f4 mb-3 "> PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 </p> <h3 class="sr-only">License</h3> <div class="mb-2"> <a href="/stingbo/easyexchange/blob/master/LICENSE" class="Link--muted" data-analytics-event="{"category":"Repository Overview","action":"click","label":"location:sidebar;file:license"}" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-law mr-2"> <path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path> </svg> MIT license </a> </div> <div class="mb-3"> <a class="Link--secondary no-underline mr-3" href="/stingbo/easyexchange/stargazers"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star mr-1"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> <span class="text-bold">84</span> stars </a> <a class="Link--secondary no-underline mr-3" href="/stingbo/easyexchange/forks"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-1"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> <span class="text-bold">31</span> forks </a> <a class="Link--secondary no-underline mr-3 d-inline-block" href="/stingbo/easyexchange/branches"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-branch mr-1"> <path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path> </svg> <span>Branches</span> </a> <a class="Link--secondary no-underline d-inline-block" href="/stingbo/easyexchange/tags"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-tag mr-1"> <path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"></path> </svg> <span>Tags</span> </a> <a class="Link--secondary no-underline d-inline-block" href="/stingbo/easyexchange/activity"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pulse mr-1"> <path d="M6 2c.306 0 .582.187.696.471L10 10.731l1.304-3.26A.751.751 0 0 1 12 7h3.25a.75.75 0 0 1 0 1.5h-2.742l-1.812 4.528a.751.751 0 0 1-1.392 0L6 4.77 4.696 8.03A.75.75 0 0 1 4 8.5H.75a.75.75 0 0 1 0-1.5h2.742l1.812-4.529A.751.751 0 0 1 6 2Z"></path> </svg> <span>Activity</span> </a> </div> <div class="d-flex flex-wrap gap-2"> <div class="flex-1"> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2Fstingbo%2Feasyexchange" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":335632294,"auth_type":"LOG_IN","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="58eb9352a840ad7d021b4627e0e821c773accaa2b0ea9d9e54b267c1f7baaa55" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn btn-block"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> </a></div> </div> <div class="flex-1"> <a href="/login?return_to=%2Fstingbo%2Feasyexchange" rel="nofollow" id="files-overview-watch-button" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/stingbo/easyexchange","user_id":null}}" data-hydro-click-hmac="8401e638a8cf6d9e995a66d8b23b9edfc93ecabebdcfec047a03dbeb8d2735b2" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn btn-block"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2"> <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path> </svg>Notifications </a> <tool-tip id="tooltip-bd4661ba-2ed9-47f0-b65b-bf7a37b523e1" for="files-overview-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip> </div> <span> </span> </div> </div> </div> <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5"> <ul data-view-component="true" class="UnderlineNav-body list-style-none"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab" href="/stingbo/easyexchange" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /stingbo/easyexchange" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Code","target":"UNDERLINE_NAV.TAB"}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> <span data-content="Code">Code</span> <span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab" href="/stingbo/easyexchange/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /stingbo/easyexchange/issues" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g i" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Issues","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> <span data-content="Issues">Issues</span> <span id="issues-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="1" data-view-component="true" class="Counter">1</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab" href="/stingbo/easyexchange/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /stingbo/easyexchange/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Pull requests","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> <span data-content="Pull requests">Pull requests</span> <span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="actions-tab" href="/stingbo/easyexchange/actions" data-tab-item="i3actions-tab" data-selected-links="repo_actions /stingbo/easyexchange/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Actions","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> <span data-content="Actions">Actions</span> <span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="projects-tab" href="/stingbo/easyexchange/projects" data-tab-item="i4projects-tab" data-selected-links="repo_projects new_repo_project repo_project /stingbo/easyexchange/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Projects","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> <span data-content="Projects">Projects</span> <span id="projects-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="wiki-tab" href="/stingbo/easyexchange/wiki" data-tab-item="i5wiki-tab" data-selected-links="repo_wiki /stingbo/easyexchange/wiki" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g w" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Wiki","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon d-none d-sm-inline"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> <span data-content="Wiki">Wiki</span> <span id="wiki-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="security-tab" href="/stingbo/easyexchange/security" data-tab-item="i6security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /stingbo/easyexchange/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Security","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span data-content="Security">Security</span> <include-fragment src="/stingbo/easyexchange/security/overall-count" accept="text/fragment+html"></include-fragment> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="insights-tab" href="/stingbo/easyexchange/pulse" data-tab-item="i7insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /stingbo/easyexchange/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Insights","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> <span data-content="Insights">Insights</span> <span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> </ul> <div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <action-menu data-select-variant="none" data-view-component="true"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-button" popovertarget="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-overlay" aria-controls="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-list" aria-haspopup="true" aria-labelledby="tooltip-8303db67-8a4c-4230-a742-2470dd509002" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual"> <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path> </svg> </button><tool-tip id="tooltip-8303db67-8a4c-4230-a742-2470dd509002" for="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Additional navigation options</tool-tip> <anchored-position data-target="action-menu.overlay" id="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-overlay" anchor="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-button" id="action-menu-29359ea6-37bf-4b70-ae99-84d4ba9af61a-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li hidden="hidden" data-menu-item="i0code-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-09eb35f6-53d7-403b-8c19-4c9bfc40cf8f" href="/stingbo/easyexchange" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Code </span> </a> </li> <li hidden="hidden" data-menu-item="i1issues-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-f49a5b2a-e641-4a9b-b0c7-548665705026" href="/stingbo/easyexchange/issues" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Issues </span> </a> </li> <li hidden="hidden" data-menu-item="i2pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-fb3ada95-edea-4d4f-bf01-549eb295e7a7" href="/stingbo/easyexchange/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Pull requests </span> </a> </li> <li hidden="hidden" data-menu-item="i3actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-2c031b8c-d518-49ac-bdfb-94a91ebb8b23" href="/stingbo/easyexchange/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Actions </span> </a> </li> <li hidden="hidden" data-menu-item="i4projects-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-b7923fe5-7c62-45ac-b298-de8718961eb9" href="/stingbo/easyexchange/projects" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Projects </span> </a> </li> <li hidden="hidden" data-menu-item="i5wiki-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-ac46ff9f-7d50-46cb-9cd8-e0cf81a41611" href="/stingbo/easyexchange/wiki" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Wiki </span> </a> </li> <li hidden="hidden" data-menu-item="i6security-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-6be78ca7-f123-41ab-b04e-3749fc081fbb" href="/stingbo/easyexchange/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Security </span> </a> </li> <li hidden="hidden" data-menu-item="i7insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-47abacaf-5f42-49bc-9e1f-971009143db2" href="/stingbo/easyexchange/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Insights </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu></div> </nav> </div> <turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class=""> <div id="repo-content-pjax-container" class="repository-content " > <h1 class='sr-only'>stingbo/easyexchange</h1> <div class="clearfix container-xl px-md-4 px-lg-5 px-3"> <div> <div style="max-width: 100%" data-view-component="true" class="Layout Layout--flowRow-until-md react-repos-overview-margin Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end"> <div data-view-component="true" class="Layout-main"> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_es_mjs-dd1d3ea6a436.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryObserver_js-node_modules_tanstack_-defd52-843b41414e0e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_aria-live_aria-live_ts-ui_packages_history_history_ts-ui_packages_promise-with-re-01dc80-134579ff449f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_paths_index_ts-3adbcf6faa83.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-7496afc3784d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_commit-attribution_index_ts-ui_packages_commit-checks-status_index_ts-ui_packages-7094d4-b869a469ca5e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_hydro-analytics_hydro-analytics_ts-ui_packages_verified-fetch_verified-fetch_ts-u-4672d1-96a19eaeffb7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_hooks_use-canonical-object_ts-ui_packages_code-view-shared_hooks-d63960-3a5579c864b4.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/repos-overview-fa360a7b1b46.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.8157a56b30ae88a1b356.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repos-overview.0ee7cac3ab511a65d9f9.module.css" /> <react-partial partial-name="repos-overview" data-ssr="true" data-attempted-ssr="true" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"initialPayload":{"allShortcutsEnabled":false,"path":"/","repo":{"id":335632294,"defaultBranch":"master","name":"easyexchange","ownerLogin":"stingbo","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-02-03T13:24:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/12377271?v=4","public":true,"private":false,"isOrgOwned":false},"currentUser":null,"refInfo":{"name":"master","listCacheKey":"v0:1674225916.789384","canEdit":false,"refType":"branch","currentOid":"a177883d6be9a53deeee89f6f2f325caa0d7c9c6"},"tree":{"items":[{"name":"docs","path":"docs","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"tests","path":"tests","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"README_CN.md","path":"README_CN.md","contentType":"file"},{"name":"api.md","path":"api.md","contentType":"file"},{"name":"composer.json","path":"composer.json","contentType":"file"},{"name":"phpstan.neon","path":"phpstan.neon","contentType":"file"},{"name":"phpunit.xml","path":"phpunit.xml","contentType":"file"}],"templateDirectorySuggestionUrl":null,"readme":null,"totalCount":11,"showBranchInfobar":false},"fileTree":null,"fileTreeProcessingTime":null,"foldersToFetch":[],"treeExpanded":false,"symbolsExpanded":false,"isOverview":true,"overview":{"banners":{"shouldRecommendReadme":false,"isPersonalRepo":false,"showUseActionBanner":false,"actionSlug":null,"actionId":null,"showProtectBranchBanner":false,"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_repo","releasePath":"/stingbo/easyexchange/releases/new?marketplace=true","showPublishActionBanner":false},"interactionLimitBanner":null,"showInvitationBanner":false,"inviterName":null,"actionsMigrationBannerInfo":{"releaseTags":[],"showImmutableActionsMigrationBanner":false,"initialMigrationStatus":null}},"codeButton":{"contactPath":"/contact","isEnterprise":false,"local":{"protocolInfo":{"httpAvailable":true,"sshAvailable":null,"httpUrl":"https://github.com/stingbo/easyexchange.git","showCloneWarning":null,"sshUrl":null,"sshCertificatesRequired":null,"sshCertificatesAvailable":null,"ghCliUrl":"gh repo clone stingbo/easyexchange","defaultProtocol":"http","newSshKeyUrl":"/settings/ssh/new","setProtocolPath":"/users/set_protocol"},"platformInfo":{"cloneUrl":"https://desktop.github.com","showVisualStudioCloneButton":false,"visualStudioCloneUrl":"https://windows.github.com","showXcodeCloneButton":false,"xcodeCloneUrl":"xcode://clone?repo=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange","zipballUrl":"/stingbo/easyexchange/archive/refs/heads/master.zip"}},"newCodespacePath":"/codespaces/new?hide_repo_select=true\u0026repo=335632294"},"popovers":{"rename":null,"renamedParentRepo":null},"commitCount":"1,008","overviewFiles":[{"displayName":"README.md","repoName":"easyexchange","refName":"master","path":"README.md","preferredFileType":"readme","tabName":"README","richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003ePHP Easy Exchange Api\u003c/h2\u003e\u003ca id=\"user-content-php-easy-exchange-api\" class=\"anchor\" aria-label=\"Permalink: PHP Easy Exchange Api\" href=\"#php-easy-exchange-api\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eEasy use digital currency exchange SDK, include \u003ccode\u003eBinance\u003c/code\u003e, \u003ccode\u003eOKX\u003c/code\u003e, \u003ccode\u003eHuobi\u003c/code\u003e, \u003ccode\u003eGate\u003c/code\u003e, \u003ccode\u003eCoinbase\u003c/code\u003e etc\u003c/li\u003e\n\u003cli\u003eIf you don’t have what you want, please let me know, and I will fulfill your wish 😄\u003c/li\u003e\n\u003cli\u003ePull requests are welcome.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/README_CN.md\"\u003e中文文档\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eRequirement\u003c/h2\u003e\u003ca id=\"user-content-requirement\" class=\"anchor\" aria-label=\"Permalink: Requirement\" href=\"#requirement\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003ePHP \u0026gt;= 7.2\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://getcomposer.org/\" rel=\"nofollow\"\u003eComposer\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eInstallation\u003c/h2\u003e\u003ca id=\"user-content-installation\" class=\"anchor\" aria-label=\"Permalink: Installation\" href=\"#installation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"$ composer require \u0026quot;stingbo/easyexchange\u0026quot; -vvv\"\u003e\u003cpre\u003e$ composer require \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003estingbo/easyexchange\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e -vvv\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAgreement\u003c/h2\u003e\u003ca id=\"user-content-agreement\" class=\"anchor\" aria-label=\"Permalink: Agreement\" href=\"#agreement\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003eYou are very familiar with the API documentation of the access platform in the project\u003c/li\u003e\n\u003cli\u003eIf it is greater than or equal to more than three parameters, use an array to pass in, otherwise use a parameter with the same name to pass in\u003c/li\u003e\n\u003cli\u003eThe interface name is not necessarily consistent with the corresponding platform. I have unified the interfaces of multiple platforms, but the parameters need to be passed in the corresponding name of the platform\u003c/li\u003e\n\u003cli\u003eBinance's timestamp parameter is built-in, no additional input is required\u003c/li\u003e\n\u003cli\u003eHuobi’s AccessKeyId, SignatureMethod, SignatureVersion, and Timestamp are already built-in, no additional input is required\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eWebsocket\u003c/h2\u003e\u003ca id=\"user-content-websocket\" class=\"anchor\" aria-label=\"Permalink: Websocket\" href=\"#websocket\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"center\"\u003eplatform\u003c/th\u003e\n\u003cth align=\"center\"\u003esupport\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/docs/binance_websocket.md\"\u003eBinance\u003c/a\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e✔️\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/docs/huobi_websocket.md\"\u003eHuobi\u003c/a\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e✔️\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/docs/okex_websocket.md\"\u003eOKX\u003c/a\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e✔️\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/docs/gate_websocket.md\"\u003eGate\u003c/a\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e✔️\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"/stingbo/easyexchange/blob/master/docs/coinbase_websocket.md\"\u003eCoinbase\u003c/a\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e✔️\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eUsage\u003c/h2\u003e\u003ca id=\"user-content-usage\" class=\"anchor\" aria-label=\"Permalink: Usage\" href=\"#usage\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBinance\u003c/h3\u003e\u003ca id=\"user-content-binance\" class=\"anchor\" aria-label=\"Permalink: Binance\" href=\"#binance\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e 🚀 Quick Start \u003c/b\u003e\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;?php\n\nuse EasyExchange\\Factory;\n\n$config = [\n 'binance' =\u0026gt; [\n 'response_type' =\u0026gt; 'array',\n //'base_uri' =\u0026gt; 'https://api.binance.com',\n 'base_uri' =\u0026gt; 'https://testnet.binance.vision', // testnet\n 'app_key' =\u0026gt; 'your app key',\n 'secret' =\u0026gt; 'your secret',\n 'proxy' =\u0026gt; [\n 'http' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;http\u0026quot;\n 'https' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;https\u0026quot;\n 'no' =\u0026gt; ['.mit.edu', 'foo.com'], // Don't use a proxy with these\n ],\n 'websocket' =\u0026gt; [\n 'base_uri' =\u0026gt; 'ws://stream.binance.com:9443',\n 'listen_ip' =\u0026gt; '127.0.0.1', // listen ip\n 'listen_port' =\u0026gt; 2207, // listen port\n 'heartbeat_time' =\u0026gt; 20, // Heartbeat detection time, seconds\n 'timer_time' =\u0026gt; 3, // Scheduled task time,seconds\n 'max_size' =\u0026gt; 100, // Data retention,1~1000,Data is stored by channel name\n 'data_time' =\u0026gt; 1, // Time interval for getting data,seconds\n 'debug' =\u0026gt; true,\n ],\n 'log' =\u0026gt; [\n 'level' =\u0026gt; 'debug',\n 'file' =\u0026gt; '/tmp/exchange.log',\n ],\n // ...\n ],\n];\n\n$app = Factory::binance($config['binance']);\n$app-\u0026gt;basic-\u0026gt;ping();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003e\u0026lt;?php\u003c/span\u003e\n\n\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e \u003cspan class=\"pl-v\"\u003eEasyExchange\u003c/span\u003e\\\u003cspan class=\"pl-smi\"\u003eFactory\u003c/span\u003e;\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebinance\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eresponse_type\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003earray\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-c\"\u003e//'base_uri' =\u0026gt; 'https://api.binance.com',\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps://testnet.binance.vision\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// testnet\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eapp_key\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour app key\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esecret\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour secret\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproxy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttp\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"http\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"https\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eno\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e.mit.edu\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efoo.com\u003c/span\u003e'\u003c/span\u003e], \u003cspan class=\"pl-c\"\u003e// Don't use a proxy with these\u003c/span\u003e\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ewebsocket\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://stream.binance.com:9443\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_ip\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e127.0.0.1\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen ip\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_port\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e2207\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen port\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eheartbeat_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e20\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Heartbeat detection time, seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimer_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Scheduled task time,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003emax_size\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Data retention,1~1000,Data is stored by channel name\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edata_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Time interval for getting data,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003etrue\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elog\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elevel\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efile\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e/tmp/exchange.log\u003c/span\u003e'\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-c\"\u003e// ...\u003c/span\u003e\n ],\n];\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e = Factory::\u003cspan class=\"pl-en\"\u003ebinance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e[\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebinance\u003c/span\u003e'\u003c/span\u003e]);\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eping\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e 1. Basic Information \u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Test Connectivity\n$app-\u0026gt;basic-\u0026gt;ping();\n// Check Server Time\n$app-\u0026gt;basic-\u0026gt;systemTime();\n// Exchange Information\n$app-\u0026gt;basic-\u0026gt;exchangeInfo();\n// System Status\n$app-\u0026gt;basic-\u0026gt;systemStatus();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Test Connectivity\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eping\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Check Server Time\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemTime\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Exchange Information\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexchangeInfo\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// System Status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemStatus\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e2. Account Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get BNB Burn Status\n$app-\u0026gt;user-\u0026gt;getBnbBurnStatus();\n// Toggle BNB Burn On Spot Trade And Margin Interest\n$params = []; // For specific values, see the corresponding api document, the same below\n$app-\u0026gt;user-\u0026gt;bnbBurn($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get BNB Burn Status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetBnbBurnStatus\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Toggle BNB Burn On Spot Trade And Margin Interest\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []; \u003cspan class=\"pl-c\"\u003e// For specific values, see the corresponding api document, the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebnbBurn\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e3. Market Data\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Order Book\n$symbol = 'ETHBTC';\n$app-\u0026gt;market-\u0026gt;depth($symbol);\n// Recent Trades List\n$app-\u0026gt;market-\u0026gt;trades($symbol, 10);\n// Old Trade Lookup\n$app-\u0026gt;market-\u0026gt;historicalTrades($symbol, 10);\n// Compressed/Aggregate Trades List\n$app-\u0026gt;market-\u0026gt;aggTrades($symbol);\n// Kline/Candlestick Data\n$params = [\n 'symbol' =\u0026gt; 'ETHBTC',\n 'interval' =\u0026gt; 'DAY',\n 'startTime' =\u0026gt; 'timestamp',\n 'endTime' =\u0026gt; 'timestamp',\n 'limit' =\u0026gt; 10,\n];\n$app-\u0026gt;market-\u0026gt;kline($params);\n// Current Average Price\n$app-\u0026gt;market-\u0026gt;avgPrice($symbol);\n// 24hr Ticker Price Change Statistics\n$app-\u0026gt;market-\u0026gt;hr24($symbol);\n// Symbol Price Ticker\n$app-\u0026gt;market-\u0026gt;price($symbol);\n// Symbol Order Book Ticker\n$app-\u0026gt;market-\u0026gt;bookTicker($symbol);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Order Book\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETHBTC\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Recent Trades List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003e10\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Old Trade Lookup\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehistoricalTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003e10\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Compressed/Aggregate Trades List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaggTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Kline/Candlestick Data\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETHBTC\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003einterval\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eDAY\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003estartTime\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimestamp\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eendTime\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimestamp\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elimit\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Current Average Price\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eavgPrice\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// 24hr Ticker Price Change Statistics\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehr24\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Symbol Price Ticker\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eprice\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Symbol Order Book Ticker\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebookTicker\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e4. Wallet\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// All Coins' Information\n$app-\u0026gt;market-\u0026gt;getAll();\n// Daily Account Snapshot\n$params = []; // For specific values, see the corresponding api document, the same below\n$app-\u0026gt;market-\u0026gt;accountSnapshot($params);\n// Disable Fast Withdraw Switch\n$app-\u0026gt;market-\u0026gt;disableFastWithdrawSwitch();\n// Enable Fast Withdraw Switch\n$app-\u0026gt;market-\u0026gt;enableFastWithdrawSwitch();\n// Withdraw[SAPI]-Submit a withdraw request\n$app-\u0026gt;market-\u0026gt;withdrawApply($params);\n// Withdraw[WAPI]-Submit a withdraw request\n$app-\u0026gt;market-\u0026gt;withdraw($params);\n// Deposit History(supporting network)\n$app-\u0026gt;market-\u0026gt;capitalDepositHistory($params);\n// Deposit History\n$app-\u0026gt;market-\u0026gt;depositHistory($params);\n// Withdraw History(supporting network)\n$app-\u0026gt;market-\u0026gt;capitalWithdrawHistory($params);\n// Withdraw History\n$app-\u0026gt;market-\u0026gt;withdrawHistory($params);\n// Deposit Address (supporting network)\n$app-\u0026gt;market-\u0026gt;capitalDepositAddress($params);\n// Deposit Address\n$app-\u0026gt;market-\u0026gt;depositAddress($params);\n// Account Status\n$app-\u0026gt;market-\u0026gt;accountStatus();\n// Account API Trading Status\n$app-\u0026gt;market-\u0026gt;apiTradingStatus();\n// DustLog-Fetch small amounts of assets exchanged BNB records\n$app-\u0026gt;market-\u0026gt;userAssetDribbletLog();\n// DustLog(SAPI)\n$app-\u0026gt;market-\u0026gt;assetDribblet();\n// Dust Transfer-Convert dust assets to BNB.\n//It is written on the Binance document:ARRAY,the asset being converted. For example:asset = BTC&asset = USDT\n$asset = [];\n$app-\u0026gt;market-\u0026gt;assetDust($asset);\n// Asset Dividend Record\n$app-\u0026gt;market-\u0026gt;assetDividend($params);\n// Asset Detail\n$app-\u0026gt;market-\u0026gt;assetDetail();\n// Trade Fee\n$app-\u0026gt;market-\u0026gt;tradeFee();\n// Trade Fee(SAPI)\n$app-\u0026gt;market-\u0026gt;assetTradeFee();\n// User Universal Transfer\n$app-\u0026gt;market-\u0026gt;transfer($params);\n// Query User Universal Transfer History\n$app-\u0026gt;market-\u0026gt;transferHistory($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// All Coins' Information\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetAll\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Daily Account Snapshot\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []; \u003cspan class=\"pl-c\"\u003e// For specific values, see the corresponding api document, the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccountSnapshot\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Disable Fast Withdraw Switch\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edisableFastWithdrawSwitch\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Enable Fast Withdraw Switch\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eenableFastWithdrawSwitch\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Withdraw[SAPI]-Submit a withdraw request\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawApply\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Withdraw[WAPI]-Submit a withdraw request\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdraw\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Deposit History(supporting network)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecapitalDepositHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Deposit History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Withdraw History(supporting network)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecapitalWithdrawHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Withdraw History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Deposit Address (supporting network)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecapitalDepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Deposit Address\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Account Status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccountStatus\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Account API Trading Status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eapiTradingStatus\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// DustLog-Fetch small amounts of assets exchanged BNB records\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003euserAssetDribbletLog\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// DustLog(SAPI)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetDribblet\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Dust Transfer-Convert dust assets to BNB.\u003c/span\u003e\n\u003cspan class=\"pl-c\"\u003e//It is written on the Binance document:ARRAY,the asset being converted. For example:asset = BTC&asset = USDT\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003easset\u003c/span\u003e = [];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetDust\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003easset\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Asset Dividend Record\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetDividend\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Asset Detail\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetDetail\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Trade Fee\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etradeFee\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Trade Fee(SAPI)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetTradeFee\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// User Universal Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query User Universal Transfer History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e5. Spot Trade\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Test New Order\n$params = [\n 'symbol' =\u0026gt; 'LTCUSDT',\n 'side' =\u0026gt; 'SELL', //BUY or SELL\n 'type' =\u0026gt; 'LIMIT',\n 'timeInForce' =\u0026gt; 'GTC',\n 'quantity' =\u0026gt; 0.1,\n 'price' =\u0026gt; 180,\n 'recvWindow' =\u0026gt; 10000,\n];\n$app-\u0026gt;spot-\u0026gt;orderTest($params);\n// New Order\n$params = [\n 'symbol' =\u0026gt; 'LTCUSDT',\n 'side' =\u0026gt; 'SELL', //BUY or SELL\n 'type' =\u0026gt; 'LIMIT',\n 'timeInForce' =\u0026gt; 'GTC',\n 'quantity' =\u0026gt; 0.1,\n 'price' =\u0026gt; 180,\n 'recvWindow' =\u0026gt; 10000,\n];\n$app-\u0026gt;spot-\u0026gt;order($params);\n// Cancel Order\n$params = [\n 'symbol' =\u0026gt; 'LTCUSDT',\n 'orderId' =\u0026gt; 3946,\n 'recvWindow' =\u0026gt; 10000,\n];\n$app-\u0026gt;spot-\u0026gt;cancelOrder($params);\n// Cancel all Open Orders on a Symbol\n$app-\u0026gt;spot-\u0026gt;cancelOrders('ETHBTC');\n// Query Order\n$params = []; // For specific values, see the corresponding api document, the same below\n$app-\u0026gt;spot-\u0026gt;get($params);\n// Current Open Orders\n$app-\u0026gt;spot-\u0026gt;openOrders('ETHBTC');\n// All Orders-Get all account orders; active, canceled, or filled.\n$app-\u0026gt;spot-\u0026gt;allOrders($params);\n// New OCO\n$app-\u0026gt;spot-\u0026gt;oco($params);\n// Cancel OCO\n$app-\u0026gt;spot-\u0026gt;cancelOcoOrder($params);\n// Query OCO\n$app-\u0026gt;spot-\u0026gt;getOcoOrder($params);\n// Query all OCO\n$app-\u0026gt;spot-\u0026gt;allOrderList($params);\n// Query Open OCO\n$app-\u0026gt;spot-\u0026gt;openOrderList($params);\n// Account Trade List\n$app-\u0026gt;spot-\u0026gt;myTrades($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Test New Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLTCUSDT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eside\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eSELL\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e//BUY or SELL\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLIMIT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimeInForce\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eGTC\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003equantity\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e0.1\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprice\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e180\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003erecvWindow\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10000\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorderTest\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// New Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLTCUSDT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eside\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eSELL\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e//BUY or SELL\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLIMIT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimeInForce\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eGTC\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003equantity\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e0.1\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprice\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e180\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003erecvWindow\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10000\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLTCUSDT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eorderId\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3946\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003erecvWindow\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10000\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all Open Orders on a Symbol\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETHBTC\u003c/span\u003e'\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []; \u003cspan class=\"pl-c\"\u003e// For specific values, see the corresponding api document, the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Current Open Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETHBTC\u003c/span\u003e'\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// All Orders-Get all account orders; active, canceled, or filled.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eallOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// New OCO\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoco\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel OCO\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOcoOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query OCO\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetOcoOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query all OCO\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eallOrderList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Open OCO\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrderList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Account Trade List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emyTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e6. Cross Margin Account Transfer\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Cross Margin Account Transfer\n$app-\u0026gt;margin-\u0026gt;transfer($params);\n// Margin Account Borrow\n$app-\u0026gt;margin-\u0026gt;loan($params);\n// Margin Account Repay\n$app-\u0026gt;margin-\u0026gt;repay($params);\n// Query Margin Asset\n$asset = 'BNB';\n$app-\u0026gt;margin-\u0026gt;asset($asset);\n// Query Cross Margin Pair\n$symbol = 'LTCUSDT';\n$app-\u0026gt;margin-\u0026gt;pair($symbol);\n// Get All Margin Assets\n$app-\u0026gt;margin-\u0026gt;allAssets();\n// Get All Cross Margin Pairs\n$app-\u0026gt;margin-\u0026gt;allPairs();\n// Query Margin PriceIndex\n$app-\u0026gt;margin-\u0026gt;priceIndex($symbol);\n// Margin Account New Order\n$app-\u0026gt;margin-\u0026gt;order($params);\n// Margin Account Cancel Order\n$app-\u0026gt;margin-\u0026gt;cancelOrder($params);\n// Margin Account Cancel all Open Orders on a Symbol\n$app-\u0026gt;margin-\u0026gt;cancelOrders($params);\n// Get Cross Margin Transfer History\n$app-\u0026gt;margin-\u0026gt;transferHistory($params);\n// Query Loan Record\n$app-\u0026gt;margin-\u0026gt;loanHistory($params);\n// Query Repay Record\n$app-\u0026gt;margin-\u0026gt;repayHistory($params);\n// Get Interest History\n$app-\u0026gt;margin-\u0026gt;interestHistory($params);\n// Get Force Liquidation Record\n$app-\u0026gt;margin-\u0026gt;forceLiquidationRec($params);\n// Query Cross Margin Account Details\n$app-\u0026gt;margin-\u0026gt;account();\n// Query Margin Account's Order\n$app-\u0026gt;margin-\u0026gt;get($params);\n// Query Margin Account's Open Orders\n$app-\u0026gt;margin-\u0026gt;openOrders($params);\n// Query Margin Account's All Orders\n$app-\u0026gt;margin-\u0026gt;allOrders($params);\n// Query Margin Account's Trade List\n$app-\u0026gt;margin-\u0026gt;myTrades($params);\n// Query Max Borrow\n$app-\u0026gt;margin-\u0026gt;maxBorrowable($params);\n// Query Max Transfer-Out Amount\n$app-\u0026gt;margin-\u0026gt;maxTransferable($params);\n// Create Isolated Margin Account\n$app-\u0026gt;margin-\u0026gt;create($params);\n// Isolated Margin Account Transfer\n$app-\u0026gt;margin-\u0026gt;isolatedTransfer($params);\n// Get Isolated Margin Transfer History\n$app-\u0026gt;margin-\u0026gt;isolatedTransferHistory($params);\n// Query Isolated Margin Account Info\n$symbols = 'BTCUSDT,BNBUSDT,ADAUSDT';\n$app-\u0026gt;margin-\u0026gt;isolatedAccount($symbols);\n// Query Isolated Margin Symbol\n$app-\u0026gt;margin-\u0026gt;isolatedPair($symbol);\n// Get All Isolated Margin Symbol\n$app-\u0026gt;margin-\u0026gt;isolatedAllPairs();\n// Query Margin Interest Rate History\n$app-\u0026gt;margin-\u0026gt;interestRateHistory($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Cross Margin Account Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin Account Borrow\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin Account Repay\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Margin Asset\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003easset\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBNB\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003easset\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003easset\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Cross Margin Pair\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eLTCUSDT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epair\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get All Margin Assets\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eallAssets\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get All Cross Margin Pairs\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eallPairs\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Query Margin PriceIndex\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceIndex\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin Account New Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin Account Cancel Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin Account Cancel all Open Orders on a Symbol\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Cross Margin Transfer History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Loan Record\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Repay Record\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepayHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Interest History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einterestHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Force Liquidation Record\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eforceLiquidationRec\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Cross Margin Account Details\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccount\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Query Margin Account's Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Margin Account's Open Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Margin Account's All Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eallOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Margin Account's Trade List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emyTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Max Borrow\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxBorrowable\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Max Transfer-Out Amount\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxTransferable\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create Isolated Margin Account\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecreate\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Isolated Margin Account Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eisolatedTransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Isolated Margin Transfer History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eisolatedTransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Isolated Margin Account Info\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbols\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTCUSDT,BNBUSDT,ADAUSDT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eisolatedAccount\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbols\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Isolated Margin Symbol\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eisolatedPair\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get All Isolated Margin Symbol\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eisolatedAllPairs\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Query Margin Interest Rate History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einterestRateHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e7. Futures\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// New Future Account Transfer\n$app-\u0026gt;future-\u0026gt;transfer($params);\n// Get Future Account Transaction History List\n$app-\u0026gt;future-\u0026gt;transferHistory($params);\n// Borrow For Cross-Collateral\n$app-\u0026gt;future-\u0026gt;borrow($params);\n// Cross-Collateral Borrow History\n$app-\u0026gt;future-\u0026gt;borrowHistory($params);\n// Repay For Cross-Collateral\n$app-\u0026gt;future-\u0026gt;repay($params);\n// Cross-Collateral Repayment History\n$app-\u0026gt;future-\u0026gt;repayHistory($params);\n// Cross-Collateral Wallet - v1 \u0026amp; v2,default v1,the same below\n$version = 'v1';\n$app-\u0026gt;future-\u0026gt;wallet($version);\n// Cross-Collateral Information - v1 \u0026amp; v2,default v1,the same below\n$app-\u0026gt;future-\u0026gt;configs($params, $version);\n// Calculate Rate After Adjust Cross-Collateral LTV - v1 \u0026amp; v2\n$app-\u0026gt;future-\u0026gt;calcAdjustLevel($params, $version);\n// Get Max Amount for Adjust Cross-Collateral LTV - v1 \u0026amp; v2\n$app-\u0026gt;future-\u0026gt;calcMaxAdjustAmount($params, $version);\n// Adjust Cross-Collateral LTV - v1 \u0026amp; v2\n$app-\u0026gt;future-\u0026gt;adjustCollateral($params, $version);\n// Adjust Cross-Collateral LTV History\n$app-\u0026gt;future-\u0026gt;adjustCollateralHistory($params);\n// Cross-Collateral Liquidation History\n$app-\u0026gt;future-\u0026gt;liquidationHistory($params);\n// Check Collateral Repay Limit-Check the maximum and minimum limit when repay with collateral\n$app-\u0026gt;future-\u0026gt;collateralRepayLimit($params);\n// Get Collateral Repay Quote\n$app-\u0026gt;future-\u0026gt;getCollateralRepay($params);\n// Repay with Collateral-Repay with collateral. Get quote before repay with collateral is mandatory, the quote will be valid within 25 seconds\n$quoteId = '8a03da95f0ad4fdc8067e3b6cde72423';\n$app-\u0026gt;future-\u0026gt;collateralRepay($quoteId);\n// Collateral Repayment Result\n$app-\u0026gt;future-\u0026gt;collateralRepayResult($quoteId);\n// Cross-Collateral Interest History\n$app-\u0026gt;future-\u0026gt;interestHistory($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// New Future Account Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Future Account Transaction History List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Borrow For Cross-Collateral\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eborrow\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Borrow History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eborrowHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay For Cross-Collateral\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Repayment History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepayHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Wallet - v1 \u0026amp; v2,default v1,the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ev1\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewallet\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Information - v1 \u0026amp; v2,default v1,the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econfigs\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Calculate Rate After Adjust Cross-Collateral LTV - v1 \u0026amp; v2\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecalcAdjustLevel\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Max Amount for Adjust Cross-Collateral LTV - v1 \u0026amp; v2\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecalcMaxAdjustAmount\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Adjust Cross-Collateral LTV - v1 \u0026amp; v2\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eadjustCollateral\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eversion\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Adjust Cross-Collateral LTV History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eadjustCollateralHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Liquidation History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eliquidationHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Check Collateral Repay Limit-Check the maximum and minimum limit when repay with collateral\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecollateralRepayLimit\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Collateral Repay Quote\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetCollateralRepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay with Collateral-Repay with collateral. Get quote before repay with collateral is mandatory, the quote will be valid within 25 seconds\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003equoteId\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e8a03da95f0ad4fdc8067e3b6cde72423\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecollateralRepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003equoteId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Collateral Repayment Result\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecollateralRepayResult\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003equoteId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cross-Collateral Interest History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einterestHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e8. Mining\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Acquiring Algorithm\n$app-\u0026gt;pool-\u0026gt;algoList();\n// Acquiring CoinName\n$app-\u0026gt;pool-\u0026gt;coinList();\n// Request for Detail Miner List\n$app-\u0026gt;pool-\u0026gt;workerDetail($params);\n// Request for Miner List\n$app-\u0026gt;pool-\u0026gt;workerList($params);\n// Earnings List\n$app-\u0026gt;pool-\u0026gt;paymentList($params);\n// Extra Bonus List\n$app-\u0026gt;pool-\u0026gt;paymentOther($params);\n// Hashrate Resale Detail List\n$app-\u0026gt;pool-\u0026gt;hashTransferConfigDetails($params);\n// Hashrate Resale List\n$app-\u0026gt;pool-\u0026gt;hashTransferConfigDetailsList($params);\n// Hashrate Resale Detail\n$app-\u0026gt;pool-\u0026gt;hashTransferProfitDetails($params);\n// Hashrate Resale Request\n$app-\u0026gt;pool-\u0026gt;hashTransferConfig($params);\n// Cancel hashrate resale configuration\n$app-\u0026gt;pool-\u0026gt;hashTransferConfigCancel($params);\n// Statistic List\n$app-\u0026gt;pool-\u0026gt;userStatus($params);\n// Account List\n$app-\u0026gt;pool-\u0026gt;userList($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Acquiring Algorithm\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ealgoList\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Acquiring CoinName\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecoinList\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Request for Detail Miner List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eworkerDetail\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Request for Miner List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eworkerList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Earnings List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epaymentList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Extra Bonus List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epaymentOther\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Hashrate Resale Detail List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehashTransferConfigDetails\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Hashrate Resale List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehashTransferConfigDetailsList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Hashrate Resale Detail\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehashTransferProfitDetails\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Hashrate Resale Request\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehashTransferConfig\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel hashrate resale configuration\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehashTransferConfigCancel\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Statistic List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003euserStatus\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Account List\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003epool\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003euserList\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eHuobi\u003c/h3\u003e\u003ca id=\"user-content-huobi\" class=\"anchor\" aria-label=\"Permalink: Huobi\" href=\"#huobi\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e 🚀 Quick Start \u003c/b\u003e\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;?php\n\nuse EasyExchange\\Factory;\n\n$config = [\n 'huobi' =\u0026gt; [\n 'response_type' =\u0026gt; 'array',\n 'base_uri' =\u0026gt; 'https://api.huobi.pro',\n 'app_key' =\u0026gt; 'your app key',\n 'secret' =\u0026gt; 'your secret',\n 'proxy' =\u0026gt; [\n 'http' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;http\u0026quot;\n 'https' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;https\u0026quot;\n 'no' =\u0026gt; ['.mit.edu', 'foo.com'], // Don't use a proxy with these\n ],\n 'websocket' =\u0026gt; [\n 'base_uri' =\u0026gt; [\n [\n 'url' =\u0026gt; 'ws://api.huobi.pro/ws',\n 'type' =\u0026gt; 'public',\n ],\n [\n 'url' =\u0026gt; 'ws://api.huobi.pro/ws/v2',\n 'type' =\u0026gt; 'private',\n ]\n ],\n 'listen_ip' =\u0026gt; '127.0.0.1', // listen ip\n 'listen_port' =\u0026gt; 2207, // listen port\n 'heartbeat_time' =\u0026gt; 20, // Heartbeat detection time, seconds\n 'timer_time' =\u0026gt; 3, // Scheduled task time,seconds\n 'max_size' =\u0026gt; 100, // Data retention,1~1000,Data is stored by channel name\n 'data_time' =\u0026gt; 1, // Time interval for getting data,seconds\n 'debug' =\u0026gt; true,\n ],\n 'log' =\u0026gt; [\n 'level' =\u0026gt; 'debug',\n 'file' =\u0026gt; '/tmp/exchange.log',\n ],\n // ...\n ],\n];\n\n$app = Factory::houbi($config['houbi']);\n$app-\u0026gt;basic-\u0026gt;systemStatus();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003e\u0026lt;?php\u003c/span\u003e\n\n\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e \u003cspan class=\"pl-v\"\u003eEasyExchange\u003c/span\u003e\\\u003cspan class=\"pl-smi\"\u003eFactory\u003c/span\u003e;\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehuobi\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eresponse_type\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003earray\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps://api.huobi.pro\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eapp_key\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour app key\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esecret\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour secret\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproxy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttp\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"http\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"https\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eno\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e.mit.edu\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efoo.com\u003c/span\u003e'\u003c/span\u003e], \u003cspan class=\"pl-c\"\u003e// Don't use a proxy with these\u003c/span\u003e\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ewebsocket\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eurl\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://api.huobi.pro/ws\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003epublic\u003c/span\u003e'\u003c/span\u003e,\n ],\n [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eurl\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://api.huobi.pro/ws/v2\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprivate\u003c/span\u003e'\u003c/span\u003e,\n ]\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_ip\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e127.0.0.1\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen ip\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_port\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e2207\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen port\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eheartbeat_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e20\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Heartbeat detection time, seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimer_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Scheduled task time,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003emax_size\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Data retention,1~1000,Data is stored by channel name\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edata_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Time interval for getting data,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003etrue\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elog\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elevel\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efile\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e/tmp/exchange.log\u003c/span\u003e'\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-c\"\u003e// ...\u003c/span\u003e\n ],\n];\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e = Factory::\u003cspan class=\"pl-en\"\u003ehoubi\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e[\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehoubi\u003c/span\u003e'\u003c/span\u003e]);\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemStatus\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e1. Basic Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get system status\n$app-\u0026gt;basic-\u0026gt;systemStatus();\n// Get Market Status\n$app-\u0026gt;basic-\u0026gt;marketStatus();\n// Get all Supported Trading Symbol\n$app-\u0026gt;basic-\u0026gt;exchangeInfo();\n// Get all Supported Currencies\n$app-\u0026gt;basic-\u0026gt;currencys();\n// APIv2 - Currency \u0026amp; Chains\n$app-\u0026gt;basic-\u0026gt;currencies();\n// Get Current Timestamp\n$app-\u0026gt;basic-\u0026gt;systemTime();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get system status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemStatus\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Market Status\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emarketStatus\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get all Supported Trading Symbol\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexchangeInfo\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get all Supported Currencies\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencys\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// APIv2 - Currency \u0026amp; Chains\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencies\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Current Timestamp\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemTime\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e2. Account Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get all Accounts of the Current User\n$app-\u0026gt;user-\u0026gt;accounts();\n// Get Account Balance of a Specific Account\n$account_id = 360218;\n$app-\u0026gt;user-\u0026gt;balance($account_id);\n// Get Asset Valuation\n$params = []; // For specific values, see the corresponding api document, the same below\n$app-\u0026gt;user-\u0026gt;assetValuation($params);\n// Asset Transfer\n$app-\u0026gt;user-\u0026gt;transfer($params);\n// Get Account History\n$app-\u0026gt;user-\u0026gt;history($params);\n// Get Account Ledger\n$app-\u0026gt;user-\u0026gt;ledger($params);\n// Transfer Fund Between Spot Account and Future Contract Account\n$app-\u0026gt;user-\u0026gt;futuresTransfer($params);\n// Get Point Balance\n$app-\u0026gt;user-\u0026gt;point($subUid = '');\n// Point Transfer\n$app-\u0026gt;user-\u0026gt;pointTransfer($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get all Accounts of the Current User\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Account Balance of a Specific Account\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e360218\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Asset Valuation\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []; \u003cspan class=\"pl-c\"\u003e// For specific values, see the corresponding api document, the same below\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eassetValuation\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Asset Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Account History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Account Ledger\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eledger\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer Fund Between Spot Account and Future Contract Account\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efuturesTransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Point Balance\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epoint\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esubUid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Point Transfer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epointTransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e3. Market Data\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Klines(Candles)\n$params = [\n 'symbol' =\u0026gt; 'btcusdt',\n 'period' =\u0026gt; '5min',\n];\n$app-\u0026gt;market-\u0026gt;kline($params);\n// Get Latest Aggregated Ticker\n$app-\u0026gt;market-\u0026gt;aggTrades($symbol);\n// Get Latest Tickers for All Pairs\n$app-\u0026gt;market-\u0026gt;tickers();\n// Get Market Depth\n$app-\u0026gt;market-\u0026gt;depth($params);\n// Get the Last Trade\n$app-\u0026gt;market-\u0026gt;trades($symbol);\n// Get the Most Recent Trades\n$app-\u0026gt;market-\u0026gt;historicalTrades($symbol);\n// Get the Last 24h Market Summary\n$app-\u0026gt;market-\u0026gt;hr24($symbol);\n// Get real time NAV\n$app-\u0026gt;market-\u0026gt;etp($symbol);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Klines(Candles)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebtcusdt\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eperiod\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e5min\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Latest Aggregated Ticker\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaggTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Latest Tickers for All Pairs\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Market Depth\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Last Trade\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Most Recent Trades\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehistoricalTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Last 24h Market Summary\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehr24\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get real time NAV\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eetp\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e4. Wallet\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Query Deposit Address\n$currency = 'btc';\n$app-\u0026gt;wallet-\u0026gt;depositAddress($currency);\n// Query Withdraw Quota\n$app-\u0026gt;wallet-\u0026gt;withdrawQuota($currency);\n// Query withdraw address\n$params = [\n 'currency' =\u0026gt; 'xrp',\n];\n$app-\u0026gt;wallet-\u0026gt;withdrawAddress($params);\n// Create a Withdraw Request\n$app-\u0026gt;wallet-\u0026gt;withdraw($params);\n// Cancel a Withdraw Request\n$app-\u0026gt;wallet-\u0026gt;cancelWithdraw($params);\n// Search for Existed Withdraws and Deposits\n$app-\u0026gt;wallet-\u0026gt;depositHistory($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Query Deposit Address\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebtc\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query Withdraw Quota\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawQuota\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query withdraw address\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecurrency\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003exrp\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a Withdraw Request\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdraw\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a Withdraw Request\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelWithdraw\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search for Existed Withdraws and Deposits\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e5. Trading\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Place a New Order\n$params = [\n 'account-id' =\u0026gt; 360000,\n 'symbol' =\u0026gt; 'btcusdt',\n 'type' =\u0026gt; 'buy-limit',\n 'amount' =\u0026gt; 0.001,\n 'price' =\u0026gt; 10000,\n];\n$app-\u0026gt;trade-\u0026gt;order($params);\n// Place a Batch of Orders\n$app-\u0026gt;trade-\u0026gt;batchOrders($params);\n// Submit Cancel for an Order\n$app-\u0026gt;trade-\u0026gt;cancelOrder('204533841408061');\n// Submit Cancel for an Order (based on client order ID)\n$client_order_id = 'a0001';\n$app-\u0026gt;trade-\u0026gt;cancelClientOrder($client_order_id);\n// Get All Open Orders\n$params = [\n 'account-id' =\u0026gt; 360000,\n 'symbol' =\u0026gt; 'btcusdt',\n// 'side' =\u0026gt; 'both',\n];\n$app-\u0026gt;trade-\u0026gt;openOrders($params);\n// Submit Cancel for Multiple Orders by Criteria\n$app-\u0026gt;trade-\u0026gt;batchCancelOpenOrders($params);\n// Submit Cancel for Multiple Orders by IDs\n$order_ids = ['5983466', '5722939', '5721027'];\n$app-\u0026gt;trade-\u0026gt;batchCancel($order_ids);\n// Dead man’s switch\n$timeout = 10;\n$app-\u0026gt;trade-\u0026gt;cancelAllAfter($timeout);\n// Get the Order Detail of an Order\n$order_id = '59378';\n$app-\u0026gt;trade-\u0026gt;get($order_id);\n// Get the Order Detail of an Order (based on client order ID)\n$order_client_id = 'a0001';\n$app-\u0026gt;trade-\u0026gt;getClientOrder($order_client_id);\n// Get the Match Result of an Order\n$app-\u0026gt;trade-\u0026gt;matchResult($order_id);\n// Search Past Orders\n$app-\u0026gt;trade-\u0026gt;getOrders($params);\n// Search Historical Orders within 48 Hours\n$app-\u0026gt;trade-\u0026gt;hr48History($params);\n// Search Match Results\n$app-\u0026gt;trade-\u0026gt;matchResults($params);\n// Get Current Fee Rate Applied to The User\n$symbols = 'btcusdt,ethusdt,ltcusdt';\n$app-\u0026gt;trade-\u0026gt;transactFeeRate($symbols);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Place a New Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eaccount-id\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e360000\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebtcusdt\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebuy-limit\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eamount\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e0.001\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprice\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10000\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Place a Batch of Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Submit Cancel for an Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e204533841408061\u003c/span\u003e'\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Submit Cancel for an Order (based on client order ID)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclient_order_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ea0001\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelClientOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclient_order_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get All Open Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eaccount-id\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e360000\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esymbol\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebtcusdt\u003c/span\u003e'\u003c/span\u003e,\n\u003cspan class=\"pl-c\"\u003e// 'side' =\u0026gt; 'both',\u003c/span\u003e\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Submit Cancel for Multiple Orders by Criteria\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebatchCancelOpenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Submit Cancel for Multiple Orders by IDs\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_ids\u003c/span\u003e = [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e5983466\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e5722939\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e5721027\u003c/span\u003e'\u003c/span\u003e];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebatchCancel\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_ids\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Dead man’s switch\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003etimeout\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e10\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelAllAfter\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003etimeout\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Order Detail of an Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e59378\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Order Detail of an Order (based on client order ID)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_client_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ea0001\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetClientOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_client_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Match Result of an Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ematchResult\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search Past Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search Historical Orders within 48 Hours\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehr48History\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search Match Results\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ematchResults\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Current Fee Rate Applied to The User\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbols\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebtcusdt,ethusdt,ltcusdt\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransactFeeRate\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbols\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e6. Margin Loan(Cross/Isolated)\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Repay Margin Loan(Cross/Isolated )\n$app-\u0026gt;margin-\u0026gt;repayment($params);\n// Transfer Asset from Spot Trading Account to Isolated Margin Account(Isolated).\n$app-\u0026gt;margin-\u0026gt;transferIn($params);\n// Transfer Asset from Isolated Margin Account to Spot Trading Account(Isolated).\n$app-\u0026gt;margin-\u0026gt;transferOut($params);\n// Get Loan Interest Rate and Quota(Isolated).\n$app-\u0026gt;margin-\u0026gt;loanInfo($params);\n// Request a Margin Loan(Isolated).\n$app-\u0026gt;margin-\u0026gt;orders($params);\n// Repay Margin Loan(Isolated).\n$app-\u0026gt;margin-\u0026gt;repay($order_id, $amount);\n// Search Past Margin Orders(Isolated).\n$app-\u0026gt;margin-\u0026gt;loanOrders($params);\n// Get the Balance of the Margin Loan Account(Isolated).\n$app-\u0026gt;margin-\u0026gt;balance($symbol = '', $sub_uid = '');\n// Transfer Asset from Spot Trading Account to Cross Margin Account(Cross).\n$app-\u0026gt;margin-\u0026gt;crossTransferIn($currency, $amount);\n// Transfer Asset from Cross Margin Account to Spot Trading Account(Cross).\n$app-\u0026gt;margin-\u0026gt;crossTransferOut($currency, $amount);\n// Get Loan Interest Rate and Quota(Cross).\n$app-\u0026gt;margin-\u0026gt;crossLoanInfo();\n// Request a Margin Loan(Cross).\n$app-\u0026gt;margin-\u0026gt;crossOrders($currency, $amount);\n// Repay Margin Loan(Cross).\n$app-\u0026gt;margin-\u0026gt;crossRepay($order_id, $amount);\n// Search Past Margin Orders(Cross).\n$app-\u0026gt;margin-\u0026gt;crossLoanOrders($params);\n// Get the Balance of the Margin Loan Account(Cross).\n$app-\u0026gt;margin-\u0026gt;crossBalance($sub_uid = '');\n// Repayment Record Reference(Cross).\n$app-\u0026gt;margin-\u0026gt;getRepayment($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Repay Margin Loan(Cross/Isolated )\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer Asset from Spot Trading Account to Isolated Margin Account(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferIn\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer Asset from Isolated Margin Account to Spot Trading Account(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferOut\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Loan Interest Rate and Quota(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanInfo\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Request a Margin Loan(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay Margin Loan(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eamount\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search Past Margin Orders(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Balance of the Margin Loan Account(Isolated).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esymbol\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esub_uid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer Asset from Spot Trading Account to Cross Margin Account(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossTransferIn\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eamount\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer Asset from Cross Margin Account to Spot Trading Account(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossTransferOut\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eamount\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Loan Interest Rate and Quota(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossLoanInfo\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Request a Margin Loan(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eamount\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay Margin Loan(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossRepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eamount\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Search Past Margin Orders(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossLoanOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the Balance of the Margin Loan Account(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecrossBalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esub_uid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repayment Record Reference(Cross).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetRepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e7. Conditional Order\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Place a conditional order\n$app-\u0026gt;algo-\u0026gt;order($params);\n// Cancel conditional orders (before triggering).\n$app-\u0026gt;algo-\u0026gt;cancelOrder($clientOrderIds);\n// Query open conditional orders (before triggering).\n$app-\u0026gt;algo-\u0026gt;openOrders($params);\n// Query conditional order history.\n$app-\u0026gt;algo-\u0026gt;orderHistory($params);\n// Query a specific conditional order.\n$app-\u0026gt;algo-\u0026gt;specific($clientOrderId);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Place a conditional order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel conditional orders (before triggering).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclientOrderIds\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query open conditional orders (before triggering).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query conditional order history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorderHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query a specific conditional order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003especific\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclientOrderId\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e8. Margin Loan(C2C)\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Place a lending/borrowing offer\n$app-\u0026gt;c2c-\u0026gt;order($params);\n// Cancel a lending/borrowing offer.\n$offerId = 14411;\n$app-\u0026gt;c2c-\u0026gt;cancelOrder($offerId);\n// Cancel all lending/borrowing offers.\n$app-\u0026gt;c2c-\u0026gt;cancelAll($params);\n// Query lending/borrow offers.\n$app-\u0026gt;c2c-\u0026gt;getOrders($params);\n// Query a lending/borrowing offer.\n$app-\u0026gt;c2c-\u0026gt;get($offerId);\n// Query lending/borrowing transactions.\n$app-\u0026gt;c2c-\u0026gt;transactions($params);\n// Repay a borrowing offer.\n$app-\u0026gt;c2c-\u0026gt;repayment($params);\n// Query C2C repayments.\n$app-\u0026gt;c2c-\u0026gt;getRepayment($params);\n// Transfer asset.\n$app-\u0026gt;c2c-\u0026gt;transfer($params);\n// Query C2C account balance.\n$app-\u0026gt;c2c-\u0026gt;balance($accountId, $currency = '');\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Place a lending/borrowing offer\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a lending/borrowing offer.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eofferId\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e14411\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eofferId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all lending/borrowing offers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelAll\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query lending/borrow offers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query a lending/borrowing offer.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eofferId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query lending/borrowing transactions.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransactions\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay a borrowing offer.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query C2C repayments.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetRepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer asset.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query C2C account balance.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ec2c\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccountId\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eOKX Version V5\u003c/h3\u003e\u003ca id=\"user-content-okx-version-v5\" class=\"anchor\" aria-label=\"Permalink: OKX Version V5\" href=\"#okx-version-v5\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e 🚀 Quick Start \u003c/b\u003e\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;?php\n\nuse EasyExchange\\Factory;\n\n$config = [\n 'okex' =\u0026gt; [\n 'response_type' =\u0026gt; 'array',\n 'base_uri' =\u0026gt; 'https://www.okex.com',\n 'app_key' =\u0026gt; 'your app key',\n 'secret' =\u0026gt; 'your secret',\n 'passphrase' =\u0026gt; 'your passphrase',\n 'x-simulated-trading' =\u0026gt; 1,\n 'proxy' =\u0026gt; [\n 'http' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;http\u0026quot;\n 'https' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;https\u0026quot;\n 'no' =\u0026gt; ['.mit.edu', 'foo.com'], // Don't use a proxy with these\n ],\n 'websocket' =\u0026gt; [\n 'base_uri' =\u0026gt; [\n [\n 'url' =\u0026gt; 'ws://ws.okex.com:8443/ws/v5/public',\n 'type' =\u0026gt; 'public',\n ],\n [\n 'url' =\u0026gt; 'ws://ws.okex.com:8443/ws/v5/private',\n 'type' =\u0026gt; 'private',\n ]\n ],\n 'listen_ip' =\u0026gt; '127.0.0.1', // listen ip\n 'listen_port' =\u0026gt; 2207, // listen port\n 'heartbeat_time' =\u0026gt; 20, // Heartbeat detection time, seconds\n 'timer_time' =\u0026gt; 3, // Scheduled task time,seconds\n 'max_size' =\u0026gt; 100, // Data retention,1~1000,Data is stored by channel name\n 'data_time' =\u0026gt; 1, // Time interval for getting data,seconds\n 'debug' =\u0026gt; true,\n ],\n 'log' =\u0026gt; [\n 'level' =\u0026gt; 'debug',\n 'file' =\u0026gt; '/tmp/exchange.log',\n ],\n ],\n];\n\n$app = Factory::okex($config['okex']);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003e\u0026lt;?php\u003c/span\u003e\n\n\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e \u003cspan class=\"pl-v\"\u003eEasyExchange\u003c/span\u003e\\\u003cspan class=\"pl-smi\"\u003eFactory\u003c/span\u003e;\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eokex\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eresponse_type\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003earray\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps://www.okex.com\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eapp_key\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour app key\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esecret\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour secret\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003epassphrase\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour passphrase\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ex-simulated-trading\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproxy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttp\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"http\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"https\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eno\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e.mit.edu\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efoo.com\u003c/span\u003e'\u003c/span\u003e], \u003cspan class=\"pl-c\"\u003e// Don't use a proxy with these\u003c/span\u003e\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ewebsocket\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eurl\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://ws.okex.com:8443/ws/v5/public\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003epublic\u003c/span\u003e'\u003c/span\u003e,\n ],\n [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eurl\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://ws.okex.com:8443/ws/v5/private\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etype\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprivate\u003c/span\u003e'\u003c/span\u003e,\n ]\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_ip\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e127.0.0.1\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen ip\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_port\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e2207\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen port\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eheartbeat_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e20\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Heartbeat detection time, seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimer_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Scheduled task time,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003emax_size\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Data retention,1~1000,Data is stored by channel name\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edata_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Time interval for getting data,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003etrue\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elog\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elevel\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efile\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e/tmp/exchange.log\u003c/span\u003e'\u003c/span\u003e,\n ],\n ],\n];\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e = Factory::\u003cspan class=\"pl-en\"\u003eokex\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e[\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eokex\u003c/span\u003e'\u003c/span\u003e]);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e1. Basic Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"$params = [\n 'instType' =\u0026gt; 'SPOT',\n];\n// Get Instruments\n$app-\u0026gt;basic-\u0026gt;exchangeInfo($params);\n// Get Delivery/Exercise History\n$app-\u0026gt;basic-\u0026gt;deliveryExerciseHistory($params);\n// Get Open Interest\n$app-\u0026gt;basic-\u0026gt;openInterest($params);\n// Get Funding Rate\n$app-\u0026gt;basic-\u0026gt;fundingRate($instId);\n// Get Funding Rate History\n$app-\u0026gt;basic-\u0026gt;fundingRateHistory($params);\n// Get Limit Price\n$app-\u0026gt;basic-\u0026gt;priceLimit($instId);\n// Get Option Market Data\n$app-\u0026gt;basic-\u0026gt;optSummary($uly, $expTime = '');\n// Get Estimated Delivery/Excercise Price\n$app-\u0026gt;basic-\u0026gt;estimatedPrice($instId);\n// Get Discount Rate And Interest-Free Quota\n$app-\u0026gt;basic-\u0026gt;discountRateInterestFreeQuota($ccy = '');\n// Get System Time\n$app-\u0026gt;basic-\u0026gt;systemTime();\n// Get Liquidation Orders\n$app-\u0026gt;basic-\u0026gt;liquidationOrders($params);\n// Get Mark Price\n$app-\u0026gt;basic-\u0026gt;markPrice($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003einstType\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eSPOT\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-c\"\u003e// Get Instruments\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexchangeInfo\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Delivery/Exercise History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edeliveryExerciseHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Open Interest\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenInterest\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Funding Rate\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efundingRate\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Funding Rate History\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efundingRateHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Limit Price\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceLimit\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Option Market Data\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptSummary\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003euly\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eexpTime\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Estimated Delivery/Excercise Price\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eestimatedPrice\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Discount Rate And Interest-Free Quota\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ediscountRateInterestFreeQuota\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get System Time\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esystemTime\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Liquidation Orders\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eliquidationOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Mark Price\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ebasic\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emarkPrice\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e2. Account Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Balance\n$app-\u0026gt;user-\u0026gt;balance($ccy = '');\n// Get Positions\n$app-\u0026gt;user-\u0026gt;positions($params);\n// Get Bills Details (last 7 days)\n$app-\u0026gt;user-\u0026gt;bills($params);\n// Get Bills Details (last 3 months)\n$app-\u0026gt;user-\u0026gt;billsArchive($params);\n// Get Account Configuration\n$app-\u0026gt;user-\u0026gt;config();\n// Set Position mode\n$app-\u0026gt;user-\u0026gt;setPositionMode($posMode);\n// Set Leverage\n$app-\u0026gt;user-\u0026gt;setLeverage($params);\n// Get maximum buy/sell amount or open amount\n$app-\u0026gt;user-\u0026gt;maxSize($params);\n// Get Maximum Available Tradable Amount\n$app-\u0026gt;user-\u0026gt;maxAvailSize($params);\n// Increase/Decrease margin\n$app-\u0026gt;user-\u0026gt;marginBalance($params);\n// Get Leverage\n$app-\u0026gt;user-\u0026gt;leverageInfo($instId, $mgnMode);\n// Get the maximum loan of instrument\n$app-\u0026gt;user-\u0026gt;maxLoan($params);\n// Get Fee Rates\n$app-\u0026gt;user-\u0026gt;tradeFee($params);\n// Get interest-accrued\n$app-\u0026gt;user-\u0026gt;interestAccrued($params);\n// Set Greeks (PA/BS)\n$app-\u0026gt;user-\u0026gt;setGreeks($greeksType);\n// Get Maximum Withdrawals\n$app-\u0026gt;user-\u0026gt;maxWithdrawal($ccy = '');\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Balance\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Positions\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositions\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Bills Details (last 7 days)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebills\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Bills Details (last 3 months)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebillsArchive\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Account Configuration\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econfig\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Set Position mode\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esetPositionMode\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eposMode\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Set Leverage\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esetLeverage\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get maximum buy/sell amount or open amount\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxSize\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Maximum Available Tradable Amount\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxAvailSize\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Increase/Decrease margin\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emarginBalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Leverage\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eleverageInfo\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003emgnMode\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the maximum loan of instrument\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxLoan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Fee Rates\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etradeFee\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get interest-accrued\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einterestAccrued\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Set Greeks (PA/BS)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esetGreeks\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003egreeksType\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Maximum Withdrawals\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emaxWithdrawal\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e3. Market Data\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Tickers - Retrieve the latest price snapshot, best bid/ask price, and trading volume in the last 24 hours\n$app-\u0026gt;market-\u0026gt;tickers($instType, $uly = '');\n// Get Ticker\n$app-\u0026gt;market-\u0026gt;ticker($instId);\n// Get Index Tickers\n$app-\u0026gt;market-\u0026gt;indexTickers($quoteCcy = '', $instId = '');\n// Get Order Book\n$instId = 'BTC-USD-SWAP';\n$sz = 1;\n$app-\u0026gt;market-\u0026gt;depth($instId, $sz);\n// Get Candlesticks\n$app-\u0026gt;market-\u0026gt;kline($params);\n// Get Candlesticks History(top currencies only)\n$app-\u0026gt;market-\u0026gt;klineHistory($params);\n// Get Index Candlesticks\n$app-\u0026gt;market-\u0026gt;indexKline($params);\n// Get Mark Price Candlesticks\n$app-\u0026gt;market-\u0026gt;markPriceKline($params);\n// Get Trades\n$app-\u0026gt;market-\u0026gt;trades($instId, $limit = 100);\n// Get exchange rate - This interface provides the average exchange rate data for 2 weeks\n$app-\u0026gt;market-\u0026gt;exchangeRate();\n// Get index components - Get the index component information data on the market\n$index = 'BTC-USDT';\n$response = $app-\u0026gt;market-\u0026gt;indexComponents($index);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Tickers - Retrieve the latest price snapshot, best bid/ask price, and trading volume in the last 24 hours\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstType\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003euly\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Ticker\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eticker\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Index Tickers\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eindexTickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003equoteCcy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Order Book\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USD-SWAP\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esz\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esz\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Candlesticks\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Candlesticks History(top currencies only)\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eklineHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Index Candlesticks\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eindexKline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Mark Price Candlesticks\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emarkPriceKline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Trades\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003einstId\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elimit\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get exchange rate - This interface provides the average exchange rate data for 2 weeks\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexchangeRate\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get index components - Get the index component information data on the market\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eindex\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USDT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eindexComponents\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eindex\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e4. Funding\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Deposit Address\n$app-\u0026gt;wallet-\u0026gt;depositAddress($ccy);\n// Get Balance.\n$app-\u0026gt;wallet-\u0026gt;balance($ccy = '');\n// Funds Transfer.\n$app-\u0026gt;wallet-\u0026gt;transfer($params);\n// Withdrawal.\n$app-\u0026gt;wallet-\u0026gt;withdrawal($params);\n// Get Deposit History.\n$app-\u0026gt;wallet-\u0026gt;depositHistory($params = []);\n// Get Withdrawal History.\n$app-\u0026gt;wallet-\u0026gt;withdrawalHistory($params = []);\n// Get Currencies.\n$app-\u0026gt;wallet-\u0026gt;currencies();\n// PiggyBank Purchase/Redemption.\n$app-\u0026gt;wallet-\u0026gt;purchaseRedempt($params);\n// Asset Bills Details.\n$app-\u0026gt;wallet-\u0026gt;bills($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Deposit Address\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Balance.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Funds Transfer.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Withdrawal.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawal\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Deposit History.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// Get Withdrawal History.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// Get Currencies.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencies\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// PiggyBank Purchase/Redemption.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epurchaseRedempt\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Asset Bills Details.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebills\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e5. Trade\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"$params = [\n 'instId' =\u0026gt; 'BTC-USD-190927-5000-C',\n 'tdMode' =\u0026gt; 'cash',\n 'side' =\u0026gt; 'buy',\n 'ordType' =\u0026gt; 'limit', // limit\n 'sz' =\u0026gt; '0.0001', // Quantity to buy or sell\n 'px' =\u0026gt; '1000', // Order price. Only applicable to limit order\n];\n// Place Order\n$app-\u0026gt;trade-\u0026gt;order($params);\n// Place Multiple Orders.\n$app-\u0026gt;trade-\u0026gt;batchOrders($params);\n// Cancel Order.\n$app-\u0026gt;trade-\u0026gt;cancelOrder($params);\n// Cancel Multiple Orders.\n$app-\u0026gt;trade-\u0026gt;cancelBatchOrders($params);\n// Amend Order - Amend an incomplete order.\n$app-\u0026gt;trade-\u0026gt;amendOrder($params);\n// Amend Multiple Orders.\n$app-\u0026gt;trade-\u0026gt;amendBatchOrders($params);\n// Close Positions.\n$app-\u0026gt;trade-\u0026gt;closePosition($params);\n$params = [\n 'instId' =\u0026gt; 'BTC-USD-190927-5000-C',\n 'ordId' =\u0026gt; '2510789768709120',\n];\n// Get Order Details\n$app-\u0026gt;trade-\u0026gt;get($params);\n// Get Order List.\n$app-\u0026gt;trade-\u0026gt;openOrders($params);\n// Get Order History (last 7 days).\n$app-\u0026gt;trade-\u0026gt;orderHistory($params);\n// Get Order History (last 3 months).\n$app-\u0026gt;trade-\u0026gt;orderHistoryArchive($params);\n// Get Transaction Details.\n$app-\u0026gt;trade-\u0026gt;fills($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003einstId\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USD-190927-5000-C\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etdMode\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecash\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eside\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebuy\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eordType\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elimit\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// limit\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esz\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e0.0001\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Quantity to buy or sell\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003epx\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e1000\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Order price. Only applicable to limit order\u003c/span\u003e\n];\n\u003cspan class=\"pl-c\"\u003e// Place Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Place Multiple Orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel Order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel Multiple Orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelBatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Amend Order - Amend an incomplete order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eamendOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Amend Multiple Orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eamendBatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Close Positions.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eclosePosition\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003einstId\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USD-190927-5000-C\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eordId\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e2510789768709120\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-c\"\u003e// Get Order Details\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Order List.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Order History (last 7 days).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorderHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Order History (last 3 months).\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorderHistoryArchive\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Transaction Details.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efills\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e6. Conditional Order(Algo Order)\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Place Algo Order\n$app-\u0026gt;algo-\u0026gt;order($params);\n// Cancel Algo Order.\n$app-\u0026gt;algo-\u0026gt;cancelOrder($params);\n// Get Algo Order List.\n$app-\u0026gt;algo-\u0026gt;openOrders($params);\n// Get Algo Order History.\n$app-\u0026gt;algo-\u0026gt;orderHistory($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Place Algo Order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel Algo Order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Algo Order List.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Algo Order History.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ealgo\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorderHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e7. Trading data\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get support coin - Retrieve the currencies supported by the trading data endpoints.\n$response = $app-\u0026gt;trading-\u0026gt;supportCoin();\n// Get taker volume - Retrieve the taker volume for both buyers and sellers.\n$params = [\n 'ccy' =\u0026gt; 'BTC',\n 'instType' =\u0026gt; 'SPOT',\n];\n$response = $app-\u0026gt;trading-\u0026gt;takerVolume($params);\n// Get margin lending ratio - Retrieve the ratio of cumulative amount between currency margin quote currency and base currency.\n$params = [\n 'ccy' =\u0026gt; 'BTC',\n];\n$response = $app-\u0026gt;trading-\u0026gt;loadRatio($params);\n// Get long/short ratio - Retrieve the ratio of users with net long vs net short positions for futures and perpetual swaps.\n$params = [\n 'ccy' =\u0026gt; 'BTC',\n];\n$response = $app-\u0026gt;trading-\u0026gt;contractLongShortAccountRatio($params);\n// Get contracts open interest and volume - Retrieve the open interest and trading volume for futures and perpetual swaps.\n$params = [\n 'ccy' =\u0026gt; 'BTC',\n];\n$response = $app-\u0026gt;trading-\u0026gt;contractOpenInterestVolume($params);\n// Get options open interest and volume - Retrieve the open interest and trading volume for options.\n$response = $app-\u0026gt;trading-\u0026gt;optionOpenInterestVolume($params);\n// Get put/call ratio - Retrieve the open interest ration and trading volume ratio of calls vs puts.\n$ccy = 'BTC';\n$response = $app-\u0026gt;trading-\u0026gt;optionOpenInterestVolumeRatio($ccy);\n// Get open interest and volume (expiry) - Retrieve the open interest and trading volume of calls and puts for each upcoming expiration.\n$response = $app-\u0026gt;trading-\u0026gt;optionOpenInterestVolumeExpiry($ccy);\n// Get open interest and volume (strike) - Retrieve the taker volume for both buyers and sellers of calls and puts.\n$exptime = '20220122';\n$response = $app-\u0026gt;trading-\u0026gt;optionOpenInterestVolumeStrike($ccy, $exptime);\n// Get taker flow - This shows the relative buy/sell volume for calls and puts. It shows whether traders are bullish or bearish on price and volatility.\n$response = $app-\u0026gt;trading-\u0026gt;optionTakerBlockVolume($ccy);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get support coin - Retrieve the currencies supported by the trading data endpoints.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esupportCoin\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get taker volume - Retrieve the taker volume for both buyers and sellers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eccy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003einstType\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eSPOT\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etakerVolume\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get margin lending ratio - Retrieve the ratio of cumulative amount between currency margin quote currency and base currency.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eccy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloadRatio\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get long/short ratio - Retrieve the ratio of users with net long vs net short positions for futures and perpetual swaps.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eccy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtractLongShortAccountRatio\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get contracts open interest and volume - Retrieve the open interest and trading volume for futures and perpetual swaps.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eccy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtractOpenInterestVolume\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get options open interest and volume - Retrieve the open interest and trading volume for options.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptionOpenInterestVolume\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get put/call ratio - Retrieve the open interest ration and trading volume ratio of calls vs puts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptionOpenInterestVolumeRatio\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get open interest and volume (expiry) - Retrieve the open interest and trading volume of calls and puts for each upcoming expiration.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptionOpenInterestVolumeExpiry\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get open interest and volume (strike) - Retrieve the taker volume for both buyers and sellers of calls and puts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eexptime\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e20220122\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptionOpenInterestVolumeStrike\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eexptime\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get taker flow - This shows the relative buy/sell volume for calls and puts. It shows whether traders are bullish or bearish on price and volatility.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eresponse\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrading\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eoptionTakerBlockVolume\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eccy\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eGate Version V4\u003c/h3\u003e\u003ca id=\"user-content-gate-version-v4\" class=\"anchor\" aria-label=\"Permalink: Gate Version V4\" href=\"#gate-version-v4\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e 🚀 Quick Start \u003c/b\u003e\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;?php\n\nuse EasyExchange\\Factory;\n\n$config = [\n 'gate' =\u0026gt; [\n 'response_type' =\u0026gt; 'array',\n 'base_uri' =\u0026gt; 'https://api.gateio.ws',\n 'app_key' =\u0026gt; 'your app key',\n 'secret' =\u0026gt; 'your secret',\n 'proxy' =\u0026gt; [\n 'http' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;http\u0026quot;\n 'https' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;https\u0026quot;\n 'no' =\u0026gt; ['.mit.edu', 'foo.com'], // Don't use a proxy with these\n ],\n 'websocket' =\u0026gt; [\n 'base_uri' =\u0026gt; 'ws://api.gateio.ws',\n 'listen_ip' =\u0026gt; '127.0.0.1', // listen ip\n 'listen_port' =\u0026gt; 2207, // listen port\n 'heartbeat_time' =\u0026gt; 20, // Heartbeat detection time, seconds\n 'timer_time' =\u0026gt; 3, // Scheduled task time,seconds\n 'max_size' =\u0026gt; 100, // Data retention,1~1000,Data is stored by channel name\n 'data_time' =\u0026gt; 1, // Time interval for getting data,seconds\n 'debug' =\u0026gt; true,\n ],\n 'log' =\u0026gt; [\n 'level' =\u0026gt; 'debug',\n 'file' =\u0026gt; '/tmp/exchange.log',\n ],\n ],\n];\n\n$app = Factory::gate($config['gate']);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003e\u0026lt;?php\u003c/span\u003e\n\n\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e \u003cspan class=\"pl-v\"\u003eEasyExchange\u003c/span\u003e\\\u003cspan class=\"pl-smi\"\u003eFactory\u003c/span\u003e;\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003egate\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eresponse_type\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003earray\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps://api.gateio.ws\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eapp_key\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour app key\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esecret\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour secret\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproxy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttp\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"http\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"https\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eno\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e.mit.edu\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efoo.com\u003c/span\u003e'\u003c/span\u003e], \u003cspan class=\"pl-c\"\u003e// Don't use a proxy with these\u003c/span\u003e\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ewebsocket\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://api.gateio.ws\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_ip\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e127.0.0.1\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen ip\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_port\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e2207\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen port\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eheartbeat_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e20\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Heartbeat detection time, seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimer_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Scheduled task time,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003emax_size\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Data retention,1~1000,Data is stored by channel name\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edata_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Time interval for getting data,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003etrue\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elog\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elevel\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efile\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e/tmp/exchange.log\u003c/span\u003e'\u003c/span\u003e,\n ],\n ],\n];\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e = Factory::\u003cspan class=\"pl-en\"\u003egate\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e[\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003egate\u003c/span\u003e'\u003c/span\u003e]);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e1. Wallet\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Generate currency deposit address.\n$currency = 'USDT';\n$app-\u0026gt;wallet-\u0026gt;depositAddress($currency);\n// Retrieve withdrawal records.\n$params = [];\n$app-\u0026gt;wallet-\u0026gt;withdrawHistory($params);\n// Retrieve deposit records.\n$app-\u0026gt;wallet-\u0026gt;depositHistory($params);\n// Transfer between trading accounts.\n$app-\u0026gt;wallet-\u0026gt;transfer($params);\n// Transfer between main and sub accounts.\n$app-\u0026gt;wallet-\u0026gt;subAccountTransfer($params);\n// Transfer records between main and sub accounts.\n$app-\u0026gt;wallet-\u0026gt;subAccountTransferHistory($params);\n// Retrieve withdrawal status.\n$app-\u0026gt;wallet-\u0026gt;withdrawStatus($currency);\n// Retrieve sub account balances.\n$app-\u0026gt;wallet-\u0026gt;subAccountBalance($sub_uid = '');\n// Retrieve personal trading fee.\n$app-\u0026gt;wallet-\u0026gt;fee();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Generate currency deposit address.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eUSDT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve withdrawal records.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve deposit records.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer between trading accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer between main and sub accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esubAccountTransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Transfer records between main and sub accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esubAccountTransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve withdrawal status.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawStatus\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve sub account balances.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esubAccountBalance\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esub_uid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve personal trading fee.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efee\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e2. Spot Trade\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// List all currencies' detail.\n$app-\u0026gt;spot-\u0026gt;currencies();\n// Get detail of one particular currency.\n$currency = 'GT';\n$app-\u0026gt;spot-\u0026gt;currency($currency);\n// List all currency pairs supported.\n$app-\u0026gt;spot-\u0026gt;currencyPairs();\n// Get detail of one single order.\n$currency_pair = 'ETH_USDT';\n$app-\u0026gt;spot-\u0026gt;currencyPair($currency_pair);\n// Retrieve ticker information.\n$app-\u0026gt;spot-\u0026gt;tickers($currency_pair);\n// Retrieve order book.\n$params = [\n 'currency_pair' =\u0026gt; 'ETH_USDT',\n];\n$app-\u0026gt;spot-\u0026gt;depth($params);\n// Retrieve market trades.\n$app-\u0026gt;spot-\u0026gt;trades($params);\n// Market candlesticks.\n$app-\u0026gt;spot-\u0026gt;kline($params);\n// List spot accounts.\n$app-\u0026gt;spot-\u0026gt;accounts($currency);\n// Create an order.\n$params = [\n 'currency_pair' =\u0026gt; 'ETH_USDT',\n 'side' =\u0026gt; 'buy',\n 'amount' =\u0026gt; '0.1',\n 'price' =\u0026gt; '10',\n];\n$app-\u0026gt;spot-\u0026gt;order($params);\n// Create a batch of orders.\n$app-\u0026gt;spot-\u0026gt;batchOrders($params);\n// List all open orders.\n$app-\u0026gt;spot-\u0026gt;openOrders($page = '', $limit = '');\n// List orders.\n$app-\u0026gt;spot-\u0026gt;orders($params);\n// Cancel all open orders in specified currency pair.\n$app-\u0026gt;spot-\u0026gt;cancelOrders($params);\n// Cancel a batch of orders with an ID list.\n$app-\u0026gt;spot-\u0026gt;cancelBatchOrders($params);\n// Get a single order\n$app-\u0026gt;spot-\u0026gt;get($order_id, $currency_pair);\n// Cancel a single order.\n$app-\u0026gt;spot-\u0026gt;cancelOrder($order_id, $currency_pair);\n// List personal trading history.\n$app-\u0026gt;spot-\u0026gt;myTrades($params);\n// Create a price-triggered order.\n$app-\u0026gt;spot-\u0026gt;priceOrder($params);\n// Retrieve running auto order list.\n$app-\u0026gt;spot-\u0026gt;priceOrders($params);\n// Cancel all open orders.\n$app-\u0026gt;spot-\u0026gt;cancelPriceOrders($market = '', $account = '');\n// Get a single order.\n$app-\u0026gt;spot-\u0026gt;getPriceOrder($order_id);\n// Cancel a single order.\n$app-\u0026gt;spot-\u0026gt;cancelPriceOrder($order_id);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// List all currencies' detail.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencies\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get detail of one particular currency.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eGT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrency\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List all currency pairs supported.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencyPairs\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get detail of one single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETH_USDT\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencyPair\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve ticker information.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve order book.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecurrency_pair\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETH_USDT\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve market trades.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Market candlesticks.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List spot accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create an order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecurrency_pair\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eETH_USDT\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eside\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebuy\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eamount\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e0.1\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprice\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e10\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a batch of orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List all open orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eopenOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003epage\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elimit\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders in specified currency pair.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a batch of orders with an ID list.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelBatchOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List personal trading history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emyTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a price-triggered order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve running auto order list.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003emarket\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003espot\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e3. Margin\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// List all supported currency pairs supported in margin trading.\n$app-\u0026gt;margin-\u0026gt;currencyPairs();\n// Query one single margin currency pair.\n$app-\u0026gt;margin-\u0026gt;currencyPair($currency_pair);\n// Order book of lending loans.\n$app-\u0026gt;margin-\u0026gt;depth($currency);\n// Margin account list.\n$app-\u0026gt;margin-\u0026gt;accounts($currency_pair = '');\n// List margin account balance change history.\n$app-\u0026gt;margin-\u0026gt;accountHistory($params);\n// Funding account list.\n$app-\u0026gt;margin-\u0026gt;fundingAccounts($currency = '');\n// Lend or borrow.\n$app-\u0026gt;margin-\u0026gt;loan($params);\n// List all loans.\n$app-\u0026gt;margin-\u0026gt;loanHistory($params);\n// Merge multiple lending loans.\n$app-\u0026gt;margin-\u0026gt;mergeLoan($currency, $ids);\n// Retrieve one single loan detail.\n$app-\u0026gt;margin-\u0026gt;get($loan_id, $side);\n// Modify a loan.\n$app-\u0026gt;margin-\u0026gt;modifyLoan($loan_id, $params);\n// Cancel lending loan.\n$app-\u0026gt;margin-\u0026gt;cancelLoan($loan_id, $currency);\n// Repay a loan.\n$app-\u0026gt;margin-\u0026gt;repayment($loan_id, $params);\n// List loan repayment records.\n$app-\u0026gt;margin-\u0026gt;getRepayment($loan_id);\n// List repayment records of specified loan.\n$app-\u0026gt;margin-\u0026gt;loanRecords($params);\n// Get one single loan record.\n$app-\u0026gt;margin-\u0026gt;loanRecord($loan_id, $loan_record_id);\n// Modify a loan record.\n$app-\u0026gt;margin-\u0026gt;modifyLoanRecord($loan_record_id, $params);\n// Update user's auto repayment setting.\n$app-\u0026gt;margin-\u0026gt;autoRepay($status);\n// Retrieve user auto repayment setting.\n$app-\u0026gt;margin-\u0026gt;getAutoRepayStatus();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// List all supported currency pairs supported in margin trading.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencyPairs\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Query one single margin currency pair.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencyPair\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Order book of lending loans.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Margin account list.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency_pair\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List margin account balance change history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccountHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Funding account list.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efundingAccounts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Lend or borrow.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List all loans.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Merge multiple lending loans.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emergeLoan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eids\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve one single loan detail.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eside\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Modify a loan.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyLoan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel lending loan.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelLoan\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Repay a loan.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003erepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List loan repayment records.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetRepayment\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List repayment records of specified loan.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanRecords\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get one single loan record.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eloanRecord\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_record_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Modify a loan record.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyLoanRecord\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eloan_record_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update user's auto repayment setting.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eautoRepay\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003estatus\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve user auto repayment setting.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetAutoRepayStatus\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e4. Future\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// List all futures contracts.\n$app-\u0026gt;future-\u0026gt;contracts($settle);\n// Get a single contract.\n$app-\u0026gt;future-\u0026gt;contract($settle, $contract);\n// Futures order book.\n$app-\u0026gt;future-\u0026gt;depth($settle, $params);\n// Futures trading history.\n$app-\u0026gt;future-\u0026gt;trades($settle, $params);\n// Get futures candlesticks.\n$app-\u0026gt;future-\u0026gt;kline($settle, $params);\n// List futures tickers.\n$app-\u0026gt;future-\u0026gt;tickers($settle, $contract);\n// Funding rate history.\n$app-\u0026gt;future-\u0026gt;fundingRateHistory($settle, $params);\n// Futures insurance balance history.\n$app-\u0026gt;future-\u0026gt;insuranceHistory($settle, $limit = '');\n// Futures stats.\n$app-\u0026gt;future-\u0026gt;contractStats($settle, $params);\n// Retrieve liquidation history.\n$app-\u0026gt;future-\u0026gt;liquidationOrders($settle, $params = []);\n// Query futures account.\n$app-\u0026gt;future-\u0026gt;accounts($settle);\n// Query account book.\n$app-\u0026gt;future-\u0026gt;accountHistory($settle, $params = []);\n// List all positions of a user.\n$app-\u0026gt;future-\u0026gt;positions($settle);\n// Get single position.\n$app-\u0026gt;future-\u0026gt;position($settle, $contract);\n// Update position margin.\n$app-\u0026gt;future-\u0026gt;modifyPositionMargin($settle, $contract, $change);\n// Update position leverage.\n$app-\u0026gt;future-\u0026gt;modifyPositionLeverage($settle, $contract, $leverage);\n// Update position risk limit.\n$app-\u0026gt;future-\u0026gt;modifyPositionRiskLimit($settle, $contract, $risk_limit);\n// Enable or disable dual mode.\n$app-\u0026gt;future-\u0026gt;setDualMode($settle, $dual_mode);\n// Retrieve position detail in dual mode.\n$app-\u0026gt;future-\u0026gt;dualCompPosition($settle, $contract);\n// Update position margin in dual mode.\n$app-\u0026gt;future-\u0026gt;modifyDualCompPositionMargin($settle, $contract, $change);\n// Update position leverage in dual mode.\n$app-\u0026gt;future-\u0026gt;modifyDualCompPositionLeverage($settle, $contract, $leverage);\n// Update position risk limit in dual mode.\n$app-\u0026gt;future-\u0026gt;modifyDualCompPositionRiskLimit($settle, $contract, $risk_limit);\n// Create a futures order.\n$app-\u0026gt;future-\u0026gt;order($settle, $params);\n// List futures orders.\n$app-\u0026gt;future-\u0026gt;orders($settle, $params);\n// Cancel all open orders matched.\n$app-\u0026gt;future-\u0026gt;cancelOrders($settle, $params);\n// Cancel a single order.\n$app-\u0026gt;future-\u0026gt;cancelOrder($settle, $order_id);\n// Get a single order.\n$app-\u0026gt;future-\u0026gt;get($settle, $order_id);\n// List personal trading history.\n$app-\u0026gt;future-\u0026gt;myTrades($settle, $params);\n// List position close history.\n$app-\u0026gt;future-\u0026gt;positionClose($settle, $params);\n// List liquidation history.\n$app-\u0026gt;future-\u0026gt;forceLiquidationRec($settle, $params);\n// Create a price-triggered order.\n$app-\u0026gt;future-\u0026gt;priceOrder($settle, $params);\n// List all auto orders.\n$app-\u0026gt;future-\u0026gt;priceOrders($settle, $params);\n// Cancel all open orders.\n$app-\u0026gt;future-\u0026gt;cancelPriceOrders($settle, $contract);\n// Get a single order.\n$app-\u0026gt;future-\u0026gt;getPriceOrder($settle, $order_id);\n// Cancel a single order.\n$app-\u0026gt;future-\u0026gt;cancelPriceOrder($settle, $order_id);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// List all futures contracts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtracts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single contract.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtract\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures order book.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures trading history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get futures candlesticks.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List futures tickers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Funding rate history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efundingRateHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures insurance balance history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einsuranceHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elimit\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures stats.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtractStats\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve liquidation history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eliquidationOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// Query futures account.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query account book.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccountHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// List all positions of a user.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositions\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get single position.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eposition\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position margin.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionMargin\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003echange\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position leverage.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionLeverage\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eleverage\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position risk limit.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionRiskLimit\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003erisk_limit\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Enable or disable dual mode.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esetDualMode\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003edual_mode\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Retrieve position detail in dual mode.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edualCompPosition\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position margin in dual mode.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyDualCompPositionMargin\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003echange\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position leverage in dual mode.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyDualCompPositionLeverage\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eleverage\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position risk limit in dual mode.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyDualCompPositionRiskLimit\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003erisk_limit\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a futures order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List futures orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders matched.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List personal trading history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emyTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List position close history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositionClose\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List liquidation history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eforceLiquidationRec\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a price-triggered order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List all auto orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003efuture\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e5. Delivery\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// List all futures contracts.\n$app-\u0026gt;delivery-\u0026gt;contracts($settle);\n// Get a single contract.\n$app-\u0026gt;delivery-\u0026gt;contract($settle, $contract);\n// Futures order book.\n$app-\u0026gt;delivery-\u0026gt;depth($settle, $params);\n// Futures trading history.\n$app-\u0026gt;delivery-\u0026gt;trades($settle, $params);\n// Get futures candlesticks.\n$app-\u0026gt;delivery-\u0026gt;kline($settle, $params);\n// List futures tickers.\n$app-\u0026gt;delivery-\u0026gt;tickers($settle, $contract);\n// Futures insurance balance history.\n$app-\u0026gt;delivery-\u0026gt;insuranceHistory($settle, $limit = '');\n// Query futures account.\n$app-\u0026gt;delivery-\u0026gt;accounts($settle);\n// Query account book.\n$app-\u0026gt;delivery-\u0026gt;accountHistory($settle, $params = []);\n// List all positions of a user.\n$app-\u0026gt;delivery-\u0026gt;positions($settle);\n// Get single position.\n$app-\u0026gt;delivery-\u0026gt;position($settle, $contract);\n// Update position margin.\n$app-\u0026gt;delivery-\u0026gt;modifyPositionMargin($settle, $contract, $change);\n// Update position leverage.\n$app-\u0026gt;delivery-\u0026gt;modifyPositionLeverage($settle, $contract, $leverage);\n// Update position risk limit.\n$app-\u0026gt;delivery-\u0026gt;modifyPositionRiskLimit($settle, $contract, $risk_limit);\n// Create a futures order.\n$app-\u0026gt;delivery-\u0026gt;order($settle, $params);\n// List futures orders.\n$app-\u0026gt;delivery-\u0026gt;orders($settle, $params);\n// Cancel all open orders matched.\n$app-\u0026gt;delivery-\u0026gt;cancelOrders($settle, $params);\n// Cancel a single order.\n$app-\u0026gt;delivery-\u0026gt;cancelOrder($settle, $order_id);\n// Get a single order.\n$app-\u0026gt;delivery-\u0026gt;get($settle, $order_id);\n// List personal trading history.\n$app-\u0026gt;delivery-\u0026gt;myTrades($settle, $params);\n// List position close history.\n$app-\u0026gt;delivery-\u0026gt;positionClose($settle, $params);\n// List liquidation history.\n$app-\u0026gt;delivery-\u0026gt;forceLiquidationRec($settle, $params);\n// List settlement history.\n$app-\u0026gt;delivery-\u0026gt;settlements($settle, $params = []);\n// Create a price-triggered order.\n$app-\u0026gt;delivery-\u0026gt;priceOrder($settle, $params);\n// List all auto orders.\n$app-\u0026gt;delivery-\u0026gt;priceOrders($settle, $params);\n// Cancel all open orders.\n$app-\u0026gt;delivery-\u0026gt;cancelPriceOrders($settle, $contract);\n// Get a single order.\n$app-\u0026gt;delivery-\u0026gt;getPriceOrder($settle, $order_id);\n// Cancel a single order.\n$app-\u0026gt;delivery-\u0026gt;cancelPriceOrder($settle, $order_id);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// List all futures contracts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtracts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single contract.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econtract\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures order book.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures trading history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get futures candlesticks.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List futures tickers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Futures insurance balance history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003einsuranceHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elimit\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query futures account.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Query account book.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccountHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// List all positions of a user.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositions\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get single position.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eposition\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position margin.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionMargin\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003echange\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position leverage.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionLeverage\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eleverage\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Update position risk limit.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emodifyPositionRiskLimit\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003erisk_limit\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create a futures order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List futures orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders matched.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List personal trading history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003emyTrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List position close history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositionClose\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List liquidation history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eforceLiquidationRec\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List settlement history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003esettlements\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// Create a price-triggered order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List all auto orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all open orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econtract\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel a single order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003edelivery\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelPriceOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003esettle\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eorder_id\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCoinbase\u003c/h3\u003e\u003ca id=\"user-content-coinbase\" class=\"anchor\" aria-label=\"Permalink: Coinbase\" href=\"#coinbase\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e 🚀 Quick Start \u003c/b\u003e\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;?php\n\nuse EasyExchange\\Factory;\n\n$config = [\n 'coinbase' =\u0026gt; [\n 'response_type' =\u0026gt; 'array',\n 'base_uri' =\u0026gt; 'https://api.pro.coinbase.com',\n 'app_key' =\u0026gt; 'your app key',\n 'secret' =\u0026gt; 'your secret',\n 'passphrase' =\u0026gt; 'your passphrase',\n 'proxy' =\u0026gt; [\n 'http' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;http\u0026quot;\n 'https' =\u0026gt; 'socks5h://127.0.0.1:1080', // Use this proxy with \u0026quot;https\u0026quot;\n 'no' =\u0026gt; ['.mit.edu', 'foo.com'], // Don't use a proxy with these\n ],\n 'websocket' =\u0026gt; [\n 'base_uri' =\u0026gt; 'ws://ws-feed.pro.coinbase.com',\n 'listen_ip' =\u0026gt; '127.0.0.1', // listen ip\n 'listen_port' =\u0026gt; 2207, // listen port\n 'heartbeat_time' =\u0026gt; 20, // Heartbeat detection time, seconds\n 'timer_time' =\u0026gt; 3, // Scheduled task time,seconds\n 'max_size' =\u0026gt; 100, // Data retention,1~1000,Data is stored by channel name\n 'data_time' =\u0026gt; 1, // Time interval for getting data,seconds\n 'debug' =\u0026gt; true,\n ],\n 'log' =\u0026gt; [\n 'level' =\u0026gt; 'debug',\n 'file' =\u0026gt; '/tmp/exchange.log',\n ],\n ],\n];\n\n$app = Factory::coinbase($config['coinbase']);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-ent\"\u003e\u0026lt;?php\u003c/span\u003e\n\n\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e \u003cspan class=\"pl-v\"\u003eEasyExchange\u003c/span\u003e\\\u003cspan class=\"pl-smi\"\u003eFactory\u003c/span\u003e;\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecoinbase\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eresponse_type\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003earray\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps://api.pro.coinbase.com\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eapp_key\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour app key\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esecret\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour secret\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003epassphrase\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eyour passphrase\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproxy\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttp\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"http\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ehttps\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esocks5h://127.0.0.1:1080\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Use this proxy with \"https\"\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eno\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e.mit.edu\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efoo.com\u003c/span\u003e'\u003c/span\u003e], \u003cspan class=\"pl-c\"\u003e// Don't use a proxy with these\u003c/span\u003e\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ewebsocket\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebase_uri\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ews://ws-feed.pro.coinbase.com\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_ip\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e127.0.0.1\u003c/span\u003e'\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen ip\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elisten_port\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e2207\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// listen port\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eheartbeat_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e20\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Heartbeat detection time, seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003etimer_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e3\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Scheduled task time,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003emax_size\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e100\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Data retention,1~1000,Data is stored by channel name\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edata_time\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e, \u003cspan class=\"pl-c\"\u003e// Time interval for getting data,seconds\u003c/span\u003e\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003etrue\u003c/span\u003e,\n ],\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elog\u003c/span\u003e'\u003c/span\u003e =\u0026gt; [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elevel\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003edebug\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003efile\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e/tmp/exchange.log\u003c/span\u003e'\u003c/span\u003e,\n ],\n ],\n];\n\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e = Factory::\u003cspan class=\"pl-en\"\u003ecoinbase\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003econfig\u003c/span\u003e[\u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ecoinbase\u003c/span\u003e'\u003c/span\u003e]);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e1. Account Information\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// List Accounts - Get a list of trading accounts from the profile of the API key.\n$app-\u0026gt;user-\u0026gt;accounts();\n// Get an Account - Information for a single account.\n$app-\u0026gt;user-\u0026gt;account($account_id);\n// Get Account History - List account activity of the API key's profile.\n$app-\u0026gt;user-\u0026gt;history($account_id, $params = []);\n// Get Holds - List holds of an account that belong to the same profile as the API key.\n$app-\u0026gt;user-\u0026gt;holds($account_id, $params = []);\n// List Accounts - Get a list of your coinbase accounts.\n$app-\u0026gt;user-\u0026gt;coinbaseAccounts();\n// fees - Get Current Fees.\n$app-\u0026gt;user-\u0026gt;fees();\n// List Profiles.\n$app-\u0026gt;user-\u0026gt;profiles();\n// Get a Profile.\n$app-\u0026gt;user-\u0026gt;profile($profile_id);\n// Create profile transfer - Transfer funds from API key's profile to another user owned profile.\n$app-\u0026gt;user-\u0026gt;transfer($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// List Accounts - Get a list of trading accounts from the profile of the API key.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccounts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get an Account - Information for a single account.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eaccount\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Account History - List account activity of the API key's profile.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// Get Holds - List holds of an account that belong to the same profile as the API key.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eholds\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = []);\n\u003cspan class=\"pl-c\"\u003e// List Accounts - Get a list of your coinbase accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecoinbaseAccounts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// fees - Get Current Fees.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efees\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// List Profiles.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eprofiles\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get a Profile.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eprofile\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eprofile_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create profile transfer - Transfer funds from API key's profile to another user owned profile.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003euser\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e2. Market Data\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Products - Get a list of available currency pairs for trading.\n$app-\u0026gt;market-\u0026gt;products();\n// Get Single Product - Get market data for a specific currency pair.\n$product_id = 'BTC-USD';\n$app-\u0026gt;market-\u0026gt;product($product_id);\n// Get Product Order Book - Get a list of open orders for a product. The amount of detail shown can be customized with the level parameter.\n$level = 2;\n$app-\u0026gt;market-\u0026gt;depth($product_id, $level);\n// Get Product Ticker - Snapshot information about the last trade (tick), best bid/ask and 24h volume.\n$app-\u0026gt;market-\u0026gt;tickers($product_id);\n// Get Trades - List the latest trades for a product.\n$params = [ 'before' =\u0026gt; 10, 'limit' =\u0026gt; 5];\n$app-\u0026gt;market-\u0026gt;trades($product_id, $params);\n// Get Historic Rates - Historic rates for a product. Rates are returned in grouped buckets based on requested granularity.\n$app-\u0026gt;market-\u0026gt;kline($product_id);\n// Get 24hr Stats - Get 24 hr stats for the product. volume is in base currency units. open, high, low are in quote currency units.\n$app-\u0026gt;market-\u0026gt;hr24($product_id);\n// Get currencies - List known currencies.\n$app-\u0026gt;market-\u0026gt;currencies();\n// Get a currency - List the currency for specified id.\n$id = 'BTC';\n$app-\u0026gt;market-\u0026gt;currency($id);\n// Get the API server time.\n$app-\u0026gt;market-\u0026gt;time();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Products - Get a list of available currency pairs for trading.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eproducts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get Single Product - Get market data for a specific currency pair.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USD\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eproduct\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Product Order Book - Get a list of open orders for a product. The amount of detail shown can be customized with the level parameter.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elevel\u003c/span\u003e = \u003cspan class=\"pl-c1\"\u003e2\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepth\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003elevel\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Product Ticker - Snapshot information about the last trade (tick), best bid/ask and 24h volume.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etickers\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Trades - List the latest trades for a product.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [ \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebefore\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e10\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003elimit\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-c1\"\u003e5\u003c/span\u003e];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etrades\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get Historic Rates - Historic rates for a product. Rates are returned in grouped buckets based on requested granularity.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ekline\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get 24hr Stats - Get 24 hr stats for the product. volume is in base currency units. open, high, low are in quote currency units.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ehr24\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get currencies - List known currencies.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrencies\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get a currency - List the currency for specified id.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC\u003c/span\u003e'\u003c/span\u003e;\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecurrency\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eid\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get the API server time.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emarket\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etime\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e3. Wallet\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get Current Exchange Limits.\n$app-\u0026gt;wallet-\u0026gt;exchangeLimits();\n// List Deposits Or List Withdrawals.\n$app-\u0026gt;wallet-\u0026gt;transferHistory($params);\n// Single Deposit Or Single Withdrawal.\n$app-\u0026gt;wallet-\u0026gt;getTransfer($transfer_id);\n// List Payment Methods.\n$app-\u0026gt;wallet-\u0026gt;paymentMethods();\n// Payment method - Deposit funds from a payment method.\n$app-\u0026gt;wallet-\u0026gt;depositPaymentMethod($params);\n// Payment method - Withdraw funds to a payment method.\n$app-\u0026gt;wallet-\u0026gt;withdrawalPaymentMethod($params);\n// Coinbase - Deposit funds from a coinbase account.\n$app-\u0026gt;wallet-\u0026gt;depositCoinbaseAccount($params);\n// Coinbase - Withdraw funds to a coinbase account.\n$app-\u0026gt;wallet-\u0026gt;withdrawalCoinbaseAccount($params);\n// List Accounts - Get a list of your coinbase accounts.\n$app-\u0026gt;wallet-\u0026gt;listAccounts();\n// Generate a Crypto Deposit Address.\n$app-\u0026gt;wallet-\u0026gt;generateDepositAddress($account_id);\n// Withdraws funds to a crypto address.\n$app-\u0026gt;wallet-\u0026gt;withdrawalCrypto($params);\n// Fee Estimate - Gets the network fee estimate when sending to the given address.\n$app-\u0026gt;wallet-\u0026gt;feeEstimate($currency, $crypto_address);\n// Create Conversion - eg:Convert $10,000.00 to 10,000.00 USDC.\n$app-\u0026gt;wallet-\u0026gt;conversion($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get Current Exchange Limits.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexchangeLimits\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// List Deposits Or List Withdrawals.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003etransferHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Single Deposit Or Single Withdrawal.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egetTransfer\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003etransfer_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List Payment Methods.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epaymentMethods\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Payment method - Deposit funds from a payment method.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositPaymentMethod\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Payment method - Withdraw funds to a payment method.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalPaymentMethod\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Coinbase - Deposit funds from a coinbase account.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003edepositCoinbaseAccount\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Coinbase - Withdraw funds to a coinbase account.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalCoinbaseAccount\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List Accounts - Get a list of your coinbase accounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003elistAccounts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Generate a Crypto Deposit Address.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003egenerateDepositAddress\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eaccount_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Withdraws funds to a crypto address.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalCrypto\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Fee Estimate - Gets the network fee estimate when sending to the given address.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efeeEstimate\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecrypto_address\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Create Conversion - eg:Convert $10,000.00 to 10,000.00 USDC.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003ewallet\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003econversion\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e4. Trade\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Place a New Order.\n$params = [\n 'size' =\u0026gt; '0.01',\n 'price' =\u0026gt; '0.100',\n 'side' =\u0026gt; 'buy',\n 'product_id' =\u0026gt; 'BTC-USD',\n];\n$app-\u0026gt;trade-\u0026gt;order($params);\n// Cancel an Order.\n$app-\u0026gt;trade-\u0026gt;cancelOrder($id = '', $client_oid = '', $product_id = '');\n// Cancel all.\n$app-\u0026gt;trade-\u0026gt;cancelOrders($product_id = '');\n// List Orders.\n$app-\u0026gt;trade-\u0026gt;orders($params);\n// Get an Order.\n$app-\u0026gt;trade-\u0026gt;get($id = '', $client_oid = '');\n// List Fills - Get a list of recent fills of the API key's profile.\n$app-\u0026gt;trade-\u0026gt;fills($params);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Place a New Order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e = [\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003esize\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e0.01\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eprice\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003e0.100\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eside\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003ebuy\u003c/span\u003e'\u003c/span\u003e,\n \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eproduct_id\u003c/span\u003e'\u003c/span\u003e =\u0026gt; \u003cspan class=\"pl-s\"\u003e'\u003cspan class=\"pl-s\"\u003eBTC-USD\u003c/span\u003e'\u003c/span\u003e,\n];\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel an Order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrder\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclient_oid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Cancel all.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ecancelOrders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List Orders.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eorders\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get an Order.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eget\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eclient_oid\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// List Fills - Get a list of recent fills of the API key's profile.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003etrade\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003efills\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eparams\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e5. Margin\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-text-html-php notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"// Get margin profile information.\n$app-\u0026gt;margin-\u0026gt;profileInformation($product_id);\n// Get buying power or selling power.\n$app-\u0026gt;margin-\u0026gt;buyingPower($product_id);\n// Get withdrawal power.\n$app-\u0026gt;margin-\u0026gt;withdrawalPower($currency);\n// Get all withdrawal powers.\n$app-\u0026gt;margin-\u0026gt;withdrawalPowers();\n// Get exit plan.\n$app-\u0026gt;margin-\u0026gt;exitPlan();\n// List liquidation history.\n$app-\u0026gt;margin-\u0026gt;liquidationHistory($after = '');\n// Get position refresh amounts.\n$app-\u0026gt;margin-\u0026gt;positionRefreshAmounts();\n// Get margin status - Returns whether margin is currently enabled.\n$app-\u0026gt;margin-\u0026gt;status();\"\u003e\u003cpre\u003e\u003cspan class=\"pl-c\"\u003e// Get margin profile information.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eprofileInformation\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get buying power or selling power.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ebuyingPower\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eproduct_id\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get withdrawal power.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalPower\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003ecurrency\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get all withdrawal powers.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003ewithdrawalPowers\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get exit plan.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eexitPlan\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// List liquidation history.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003eliquidationHistory\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eafter\u003c/span\u003e = \u003cspan class=\"pl-s\"\u003e''\u003c/span\u003e);\n\u003cspan class=\"pl-c\"\u003e// Get position refresh amounts.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003epositionRefreshAmounts\u003c/span\u003e();\n\u003cspan class=\"pl-c\"\u003e// Get margin status - Returns whether margin is currently enabled.\u003c/span\u003e\n\u003cspan class=\"pl-s1\"\u003e\u003cspan class=\"pl-c1\"\u003e$\u003c/span\u003eapp\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-c1\"\u003emargin\u003c/span\u003e-\u0026gt;\u003cspan class=\"pl-en\"\u003estatus\u003c/span\u003e();\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDonation Address:\u003c/h2\u003e\u003ca id=\"user-content-donation-address\" class=\"anchor\" aria-label=\"Permalink: Donation Address:\" href=\"#donation-address\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"center\"\u003eCoin\u003c/th\u003e\n\u003cth align=\"center\"\u003eAddress\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eDOGE\u003c/td\u003e\n\u003ctd align=\"center\"\u003eD5QXoFYTAzs756SnP4gqiEePtrb5oQZRrW\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eXRP\u003c/td\u003e\n\u003ctd align=\"center\"\u003erEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh // TAG:310515423\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eBTC\u003c/td\u003e\n\u003ctd align=\"center\"\u003e163guqWS4hcpPcfzaEUa1NypH3PLdEJ9TE\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eETH\u003c/td\u003e\n\u003ctd align=\"center\"\u003e0xab6b060592bce331a1bb4e649016173274a99cb0\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAPI Support\u003c/h2\u003e\u003ca id=\"user-content-api-support\" class=\"anchor\" aria-label=\"Permalink: API Support\" href=\"#api-support\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"center\"\u003econtact us\u003c/th\u003e\n\u003cth align=\"center\"\u003edetail\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eQQ Group\u003c/td\u003e\n\u003ctd align=\"center\"\u003e871358160\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eEmail\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"mailto:lianbo.wan@gmail.com\"\u003elianbo.wan@gmail.com\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003eEmail\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003ca href=\"mailto:sting_bo@163.com\"\u003esting_bo@163.com\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003c/article\u003e","loaded":true,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":[{"level":2,"text":"PHP Easy Exchange Api","anchor":"php-easy-exchange-api","htmlText":"PHP Easy Exchange Api"},{"level":2,"text":"Requirement","anchor":"requirement","htmlText":"Requirement"},{"level":2,"text":"Installation","anchor":"installation","htmlText":"Installation"},{"level":2,"text":"Agreement","anchor":"agreement","htmlText":"Agreement"},{"level":2,"text":"Websocket","anchor":"websocket","htmlText":"Websocket"},{"level":2,"text":"Usage","anchor":"usage","htmlText":"Usage"},{"level":3,"text":"Binance","anchor":"binance","htmlText":"Binance"},{"level":3,"text":"Huobi","anchor":"huobi","htmlText":"Huobi"},{"level":3,"text":"OKX Version V5","anchor":"okx-version-v5","htmlText":"OKX Version V5"},{"level":3,"text":"Gate Version V4","anchor":"gate-version-v4","htmlText":"Gate Version V4"},{"level":3,"text":"Coinbase","anchor":"coinbase","htmlText":"Coinbase"},{"level":2,"text":"Donation Address:","anchor":"donation-address","htmlText":"Donation Address:"},{"level":2,"text":"API Support","anchor":"api-support","htmlText":"API Support"}],"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange"}},{"displayName":"LICENSE","repoName":"easyexchange","refName":"master","path":"LICENSE","preferredFileType":"license","tabName":"MIT","richText":null,"loaded":false,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":null,"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange"}}],"overviewFilesProcessingTime":0}},"appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-96e76d5fdb2c.js","githubDevUrl":null,"enabled_features":{"copilot_workspace":null,"code_nav_ui_events":false,"overview_shared_code_dropdown_button":false,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}}</script> <div data-target="react-partial.reactRoot"><style data-styled="true" data-styled-version="5.3.11">.iVEunk{margin-top:16px;margin-bottom:16px;}/*!sc*/ .jzuOtQ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}/*!sc*/ .bGojzy{margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:16px;}/*!sc*/ .iNSVHo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding-bottom:16px;padding-top:8px;}/*!sc*/ .bVgnfw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:8px;}/*!sc*/ @media screen and (max-width:320px){.bVgnfw{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}}/*!sc*/ .CEgMp{position:relative;}/*!sc*/ @media screen and (max-width:380px){.CEgMp .ref-selector-button-text-container{max-width:80px;}}/*!sc*/ @media screen and (max-width:320px){.CEgMp{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}.CEgMp .overview-ref-selector{width:100%;}.CEgMp .overview-ref-selector > span{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;}.CEgMp .overview-ref-selector > span > span[data-component="text"]{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}}/*!sc*/ .gMOVLe[data-size="medium"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;}/*!sc*/ .gMOVLe[data-size="medium"] svg{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .gMOVLe[data-size="medium"] > span{width:inherit;}/*!sc*/ .gUkoLg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .bZBlpz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}/*!sc*/ .lhTYNA{margin-right:4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .ffLUq{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/*!sc*/ .bmcJak{min-width:0;}/*!sc*/ .fLXEGX{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ @media screen and (max-width:1079px){.fLXEGX{display:none;}}/*!sc*/ .lmSMZJ[data-size="medium"]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));padding-left:4px;padding-right:4px;}/*!sc*/ .lmSMZJ[data-size="medium"] span[data-component="leadingVisual"]{margin-right:4px !important;}/*!sc*/ .dqfxud{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ @media screen and (min-width:1080px){.dqfxud{display:none;}}/*!sc*/ @media screen and (max-width:543px){.dqfxud{display:none;}}/*!sc*/ .fGwBZA[data-size="medium"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jxTzTd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;gap:8px;}/*!sc*/ .gqqBXN{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:8px;}/*!sc*/ @media screen and (max-width:543px){.gqqBXN{display:none;}}/*!sc*/ .dzXgxt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ @media screen and (max-width:1011px){.dzXgxt{display:none;}}/*!sc*/ .iWFGlI{margin-left:8px;margin-right:8px;margin:0;}/*!sc*/ .vcvyP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:160px;}/*!sc*/ .YUPas{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ @media screen and (min-width:1012px){.YUPas{display:none;}}/*!sc*/ .izFOf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ @media screen and (min-width:544px){.izFOf{display:none;}}/*!sc*/ .vIPPs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:16px;}/*!sc*/ .fdROMU{width:100%;border-collapse:separate;border-spacing:0;border:1px solid;border-color:var(--borderColor-default,var(--color-border-default,#d0d7de));border-radius:6px;table-layout:fixed;overflow:unset;}/*!sc*/ .jGKpsv{height:0px;line-height:0px;}/*!sc*/ .jGKpsv tr{height:0px;font-size:0px;}/*!sc*/ .jdgHnn{padding:16px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:12px;text-align:left;height:40px;}/*!sc*/ .jdgHnn th{padding-left:16px;background-color:var(--bgColor-muted,var(--color-canvas-subtle,#f6f8fa));}/*!sc*/ .bQivRW{width:100%;border-top-left-radius:6px;}/*!sc*/ @media screen and (min-width:544px){.bQivRW{display:none;}}/*!sc*/ .ldkMIO{width:40%;border-top-left-radius:6px;}/*!sc*/ @media screen and (max-width:543px){.ldkMIO{display:none;}}/*!sc*/ .jMbWeI{text-align:right;padding-right:16px;width:136px;border-top-right-radius:6px;}/*!sc*/ .gpqjiB{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:12px;height:40px;}/*!sc*/ .dzCJzi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:273px;padding:8px;}/*!sc*/ @media screen and (min-width:544px){.dzCJzi{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}/*!sc*/ .eNCcrz{text-align:center;vertical-align:center;height:40px;border-top:1px solid;border-color:var(--borderColor-default,var(--color-border-default,#d0d7de));}/*!sc*/ .bHTcCe{border-top:1px solid var(--borderColor-default,var(--color-border-default));cursor:pointer;}/*!sc*/ .csrIcr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;gap:16px;}/*!sc*/ .bUQNHB{border:1px solid;border-color:var(--borderColor-default,var(--color-border-default,#d0d7de));border-radius:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}/*!sc*/ @media screen and (max-width:543px){.bUQNHB{margin-left:-16px;margin-right:-16px;max-width:calc(100% + 32px);}}/*!sc*/ @media screen and (min-width:544px){.bUQNHB{max-width:100%;}}/*!sc*/ .jPdcfu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-bottom:1px solid;border-bottom-color:var(--borderColor-default,var(--color-border-default,#d0d7de));-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-right:8px;position:-webkit-sticky;position:sticky;top:0;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));z-index:1;border-top-left-radius:6px;border-top-right-radius:6px;}/*!sc*/ .iphEWz{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-bottom:none;max-width:100%;padding-left:8px;padding-right:8px;}/*!sc*/ .hUCRAk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .cwoBXV[data-size="medium"]{color:var(--fgColor-muted,var(--color-fg-subtle,#6e7781));padding-left:8px;padding-right:8px;}/*!sc*/ .QkQOb{padding:32px;overflow:auto;}/*!sc*/ data-styled.g1[id="Box-sc-g0xbh4-0"]{content:"iVEunk,jzuOtQ,bGojzy,iNSVHo,bVgnfw,CEgMp,gMOVLe,gUkoLg,bZBlpz,lhTYNA,ffLUq,bmcJak,fLXEGX,lmSMZJ,dqfxud,fGwBZA,jxTzTd,gqqBXN,dzXgxt,iWFGlI,vcvyP,YUPas,izFOf,vIPPs,fdROMU,jGKpsv,jdgHnn,bQivRW,ldkMIO,jMbWeI,gpqjiB,dzCJzi,eNCcrz,bHTcCe,csrIcr,bUQNHB,jPdcfu,iphEWz,hUCRAk,cwoBXV,QkQOb,"}/*!sc*/ .brGdpi{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip:rect(0,0,0,0);clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}/*!sc*/ data-styled.g5[id="_VisuallyHidden__VisuallyHidden-sc-11jhm7a-0"]{content:"brGdpi,"}/*!sc*/ .hWlpPn{position:relative;display:inline-block;}/*!sc*/ .hWlpPn::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .hWlpPn:hover::after,.hWlpPn:active::after,.hWlpPn:focus::after,.hWlpPn:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-no-delay:hover::after,.hWlpPn.tooltipped-no-delay:active::after,.hWlpPn.tooltipped-no-delay:focus::after,.hWlpPn.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-multiline:hover::after,.hWlpPn.tooltipped-multiline:active::after,.hWlpPn.tooltipped-multiline:focus::after,.hWlpPn.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-se::after,.hWlpPn.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/ .hWlpPn.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-sw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-n::after,.hWlpPn.tooltipped-ne::after,.hWlpPn.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/ .hWlpPn.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-nw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/ .hWlpPn.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-s::after,.hWlpPn.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-w::after,.hWlpPn.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/ .hWlpPn.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/ .hWlpPn.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/ data-styled.g16[id="Tooltip__TooltipBase-sc-17tf59c-0"]{content:"hWlpPn,"}/*!sc*/ .liVpTx{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:125px;}/*!sc*/ data-styled.g18[id="Truncate__StyledTruncate-sc-23o1d2-0"]{content:"liVpTx,"}/*!sc*/ </style> <!-- --> <!-- --> <div class="Box-sc-g0xbh4-0 iVEunk"><div class="Box-sc-g0xbh4-0 jzuOtQ"><div class="Box-sc-g0xbh4-0 bGojzy"></div></div><div class="Box-sc-g0xbh4-0 iNSVHo"><div class="Box-sc-g0xbh4-0 bVgnfw"><div class="Box-sc-g0xbh4-0 CEgMp"><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="master branch" data-testid="anchor-button" class="Box-sc-g0xbh4-0 gMOVLe prc-Button-ButtonBase-c50BI overview-ref-selector width-full" data-loading="false" data-size="medium" data-variant="default" aria-describedby="branch-picker-repos-header-ref-selector-loading-announcement" id="branch-picker-repos-header-ref-selector"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x"><div class="Box-sc-g0xbh4-0 bZBlpz"><div class="Box-sc-g0xbh4-0 lhTYNA"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></div><div class="Box-sc-g0xbh4-0 ffLUq ref-selector-button-text-container"><span class="Box-sc-g0xbh4-0 bmcJak prc-Text-Text-0ima0"> <!-- -->master</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><button hidden="" data-hotkey-scope="read-only-cursor-text-area"></button></div><div class="Box-sc-g0xbh4-0 fLXEGX"><a style="--button-color:fg.muted" type="button" href="/stingbo/easyexchange/branches" class="Box-sc-g0xbh4-0 lmSMZJ prc-Button-ButtonBase-c50BI" data-loading="false" data-size="medium" data-variant="invisible" aria-describedby=":Rclab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Branches</span></span></a><a style="--button-color:fg.muted" type="button" href="/stingbo/easyexchange/tags" class="Box-sc-g0xbh4-0 lmSMZJ prc-Button-ButtonBase-c50BI" data-loading="false" data-size="medium" data-variant="invisible" aria-describedby=":Rklab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-tag" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Tags</span></span></a></div><div class="Box-sc-g0xbh4-0 dqfxud"><a style="--button-color:fg.muted" type="button" aria-label="Go to Branches page" href="/stingbo/easyexchange/branches" class="Box-sc-g0xbh4-0 fGwBZA prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Relab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></a><a style="--button-color:fg.muted" type="button" aria-label="Go to Tags page" href="/stingbo/easyexchange/tags" class="Box-sc-g0xbh4-0 fGwBZA prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rmlab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-tag" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"></path></svg></a></div></div><div class="Box-sc-g0xbh4-0 jxTzTd"><div class="Box-sc-g0xbh4-0 gqqBXN"><div class="Box-sc-g0xbh4-0 dzXgxt"><!--$--><div class="Box-sc-g0xbh4-0 iWFGlI"><span class="Box-sc-g0xbh4-0 vcvyP TextInput-wrapper prc-components-TextInputWrapper-i1ofR prc-components-TextInputBaseWrapper-ueK9q" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id=":R2j5ab:" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellcheck="false" placeholder="Go to file" aria-describedby=":R2j5ab: :R2j5abH1:" data-component="input" class="prc-components-Input-Ic-y8" value=""/><span class="TextInput-icon" id=":R2j5abH1:" aria-hidden="true"></span></span></div><!--/$--></div><div class="Box-sc-g0xbh4-0 YUPas"><button type="button" class="prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":Rr5ab:-loading-announcement"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x">Go to file</span></span></button></div><div class="react-directory-add-file-icon"></div><div class="react-directory-remove-file-icon"></div></div><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-c50BI" data-loading="false" data-size="medium" data-variant="primary" aria-describedby=":R55ab:-loading-announcement" id=":R55ab:"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-code hide-sm" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Code</span><span data-component="trailingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="Box-sc-g0xbh4-0 izFOf"><button data-component="IconButton" type="button" aria-label="Open more actions menu" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-c50BI prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R75ab:-loading-announcement" id=":R75ab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button></div></div></div><div class="Box-sc-g0xbh4-0 vIPPs"><div data-hpc="true"><button hidden="" data-testid="focus-next-element-button" data-hotkey="j"></button><button hidden="" data-testid="focus-previous-element-button" data-hotkey="k"></button><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading" id="folders-and-files">Folders and files</h2><table aria-labelledby="folders-and-files" class="Box-sc-g0xbh4-0 fdROMU"><thead class="Box-sc-g0xbh4-0 jGKpsv"><tr class="Box-sc-g0xbh4-0 jdgHnn"><th colSpan="2" class="Box-sc-g0xbh4-0 bQivRW"><span class="text-bold">Name</span></th><th colSpan="1" class="Box-sc-g0xbh4-0 ldkMIO"><span class="text-bold">Name</span></th><th class="hide-sm"><div title="Last commit message" class="Truncate__StyledTruncate-sc-23o1d2-0 liVpTx width-fit"><span class="text-bold">Last commit message</span></div></th><th colSpan="1" class="Box-sc-g0xbh4-0 jMbWeI"><div title="Last commit date" class="Truncate__StyledTruncate-sc-23o1d2-0 liVpTx width-fit"><span class="text-bold">Last commit date</span></div></th></tr></thead><tbody><tr class="Box-sc-g0xbh4-0 gpqjiB"><td colSpan="3" class="bgColor-muted p-1 rounded-top-2"><div class="Box-sc-g0xbh4-0 dzCJzi"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">History</h2><a href="/stingbo/easyexchange/commits/master/" class="prc-Button-ButtonBase-c50BI d-none d-lg-flex LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby=":Raqj8pab:-loading-announcement"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x"><span class="fgColor-default">1,008 Commits</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><span role="tooltip" aria-label="1,008 Commits" id="history-icon-button-tooltip" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-n"><a href="/stingbo/easyexchange/commits/master/" class="prc-Button-ButtonBase-c50BI LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby=":R1iqj8pab:-loading-announcement history-icon-button-tooltip"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a></span></div></div></div></div></td></tr><tr class="react-directory-row undefined" id="folder-row-0"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="docs" aria-label="docs, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/docs">docs</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="docs" aria-label="docs, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/docs">docs</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-1"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="src" aria-label="src, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/src">src</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="src" aria-label="src, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/src">src</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-2"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="tests" aria-label="tests, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/tests">tests</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-fill icon-directory" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1H1.75Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="tests" aria-label="tests, (Directory)" class="Link--primary" href="/stingbo/easyexchange/tree/master/tests">tests</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-3"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title=".gitignore" aria-label=".gitignore, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/.gitignore">.gitignore</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title=".gitignore" aria-label=".gitignore, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/.gitignore">.gitignore</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-4"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="LICENSE" aria-label="LICENSE, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/LICENSE">LICENSE</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="LICENSE" aria-label="LICENSE, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/LICENSE">LICENSE</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-5"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="README.md" aria-label="README.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/README.md">README.md</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="README.md" aria-label="README.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/README.md">README.md</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-6"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="README_CN.md" aria-label="README_CN.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/README_CN.md">README_CN.md</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="README_CN.md" aria-label="README_CN.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/README_CN.md">README_CN.md</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-7"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="api.md" aria-label="api.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/api.md">api.md</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="api.md" aria-label="api.md, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/api.md">api.md</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-8"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="composer.json" aria-label="composer.json, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/composer.json">composer.json</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="composer.json" aria-label="composer.json, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/composer.json">composer.json</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row undefined" id="folder-row-9"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="phpstan.neon" aria-label="phpstan.neon, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/phpstan.neon">phpstan.neon</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="phpstan.neon" aria-label="phpstan.neon, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/phpstan.neon">phpstan.neon</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="react-directory-row truncate-for-mobile" id="folder-row-10"><td class="react-directory-row-name-cell-small-screen" colSpan="2"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="phpunit.xml" aria-label="phpunit.xml, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/phpunit.xml">phpunit.xml</a></div></div></div></div></td><td class="react-directory-row-name-cell-large-screen" colSpan="1"><div class="react-directory-filename-column"><svg aria-hidden="true" focusable="false" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg><div class="overflow-hidden"><div class="react-directory-filename-cell"><div class="react-directory-truncate"><a title="phpunit.xml" aria-label="phpunit.xml, (File)" class="Link--primary" href="/stingbo/easyexchange/blob/master/phpunit.xml">phpunit.xml</a></div></div></div></div></td><td class="react-directory-row-commit-cell"><div class="Skeleton Skeleton--text"> </div></td><td><div class="Skeleton Skeleton--text"> </div></td></tr><tr class="Box-sc-g0xbh4-0 eNCcrz show-for-mobile" data-testid="view-all-files-row"><td colSpan="3" class="Box-sc-g0xbh4-0 bHTcCe"><div><button class="prc-Link-Link-85e08">View all files</button></div></td></tr></tbody></table></div><div class="Box-sc-g0xbh4-0 csrIcr"><div class="Box-sc-g0xbh4-0 bUQNHB"><div itemscope="" itemType="https://schema.org/abstract" class="Box-sc-g0xbh4-0 jPdcfu"><h2 class="_VisuallyHidden__VisuallyHidden-sc-11jhm7a-0 brGdpi">Repository files navigation</h2><nav class="Box-sc-g0xbh4-0 iphEWz prc-components-UnderlineWrapper-oOh5J" aria-label="Repository files"><ul class="prc-components-UnderlineItemList-b23Hf" role="list"><li class="Box-sc-g0xbh4-0 hUCRAk"><a class="prc-components-UnderlineItem-lJsg-" href="#" aria-current="page"><span data-component="icon"><svg aria-hidden="true" focusable="false" class="octicon octicon-book" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path></svg></span><span data-component="text" data-content="README">README</span></a></li><li class="Box-sc-g0xbh4-0 hUCRAk"><a class="prc-components-UnderlineItem-lJsg-" href="#"><span data-component="icon"><svg aria-hidden="true" focusable="false" class="octicon octicon-law" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path></svg></span><span data-component="text" data-content="MIT license">MIT license</span></a></li></ul></nav><button style="--button-color:fg.subtle" type="button" aria-label="Outline" aria-haspopup="true" aria-expanded="false" tabindex="0" class="Box-sc-g0xbh4-0 cwoBXV prc-Button-ButtonBase-c50BI" data-loading="false" data-size="medium" data-variant="invisible" aria-describedby=":Rr9ab:-loading-announcement" id=":Rr9ab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button></div><div class="Box-sc-g0xbh4-0 QkQOb js-snippet-clipboard-copy-unpositioned undefined" data-hpc="true"><article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">PHP Easy Exchange Api</h2><a id="user-content-php-easy-exchange-api" class="anchor" aria-label="Permalink: PHP Easy Exchange Api" href="#php-easy-exchange-api"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <ul dir="auto"> <li>Easy use digital currency exchange SDK, include <code>Binance</code>, <code>OKX</code>, <code>Huobi</code>, <code>Gate</code>, <code>Coinbase</code> etc</li> <li>If you don’t have what you want, please let me know, and I will fulfill your wish 😄</li> <li>Pull requests are welcome.</li> <li><a href="/stingbo/easyexchange/blob/master/README_CN.md">中文文档</a></li> </ul> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Requirement</h2><a id="user-content-requirement" class="anchor" aria-label="Permalink: Requirement" href="#requirement"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <ol dir="auto"> <li>PHP >= 7.2</li> <li><strong><a href="https://getcomposer.org/" rel="nofollow">Composer</a></strong></li> </ol> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Installation</h2><a id="user-content-installation" class="anchor" aria-label="Permalink: Installation" href="#installation"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="$ composer require "stingbo/easyexchange" -vvv"><pre>$ composer require <span class="pl-s"><span class="pl-pds">"</span>stingbo/easyexchange<span class="pl-pds">"</span></span> -vvv</pre></div> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Agreement</h2><a id="user-content-agreement" class="anchor" aria-label="Permalink: Agreement" href="#agreement"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <ol dir="auto"> <li>You are very familiar with the API documentation of the access platform in the project</li> <li>If it is greater than or equal to more than three parameters, use an array to pass in, otherwise use a parameter with the same name to pass in</li> <li>The interface name is not necessarily consistent with the corresponding platform. I have unified the interfaces of multiple platforms, but the parameters need to be passed in the corresponding name of the platform</li> <li>Binance's timestamp parameter is built-in, no additional input is required</li> <li>Huobi’s AccessKeyId, SignatureMethod, SignatureVersion, and Timestamp are already built-in, no additional input is required</li> </ol> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Websocket</h2><a id="user-content-websocket" class="anchor" aria-label="Permalink: Websocket" href="#websocket"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <markdown-accessiblity-table><table> <thead> <tr> <th align="center">platform</th> <th align="center">support</th> </tr> </thead> <tbody> <tr> <td align="center"><a href="/stingbo/easyexchange/blob/master/docs/binance_websocket.md">Binance</a></td> <td align="center">✔️</td> </tr> <tr> <td align="center"><a href="/stingbo/easyexchange/blob/master/docs/huobi_websocket.md">Huobi</a></td> <td align="center">✔️</td> </tr> <tr> <td align="center"><a href="/stingbo/easyexchange/blob/master/docs/okex_websocket.md">OKX</a></td> <td align="center">✔️</td> </tr> <tr> <td align="center"><a href="/stingbo/easyexchange/blob/master/docs/gate_websocket.md">Gate</a></td> <td align="center">✔️</td> </tr> <tr> <td align="center"><a href="/stingbo/easyexchange/blob/master/docs/coinbase_websocket.md">Coinbase</a></td> <td align="center">✔️</td> </tr> </tbody> </table></markdown-accessiblity-table> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Usage</h2><a id="user-content-usage" class="anchor" aria-label="Permalink: Usage" href="#usage"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Binance</h3><a id="user-content-binance" class="anchor" aria-label="Permalink: Binance" href="#binance"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <details> <summary><b> 🚀 Quick Start </b></summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="<?php use EasyExchange\Factory; $config = [ 'binance' => [ 'response_type' => 'array', //'base_uri' => 'https://api.binance.com', 'base_uri' => 'https://testnet.binance.vision', // testnet 'app_key' => 'your app key', 'secret' => 'your secret', 'proxy' => [ 'http' => 'socks5h://127.0.0.1:1080', // Use this proxy with "http" 'https' => 'socks5h://127.0.0.1:1080', // Use this proxy with "https" 'no' => ['.mit.edu', 'foo.com'], // Don't use a proxy with these ], 'websocket' => [ 'base_uri' => 'ws://stream.binance.com:9443', 'listen_ip' => '127.0.0.1', // listen ip 'listen_port' => 2207, // listen port 'heartbeat_time' => 20, // Heartbeat detection time, seconds 'timer_time' => 3, // Scheduled task time,seconds 'max_size' => 100, // Data retention,1~1000,Data is stored by channel name 'data_time' => 1, // Time interval for getting data,seconds 'debug' => true, ], 'log' => [ 'level' => 'debug', 'file' => '/tmp/exchange.log', ], // ... ], ]; $app = Factory::binance($config['binance']); $app->basic->ping();"><pre><span class="pl-ent"><?php</span> <span class="pl-k">use</span> <span class="pl-v">EasyExchange</span>\<span class="pl-smi">Factory</span>; <span class="pl-s1"><span class="pl-c1">$</span>config</span> = [ <span class="pl-s">'<span class="pl-s">binance</span>'</span> => [ <span class="pl-s">'<span class="pl-s">response_type</span>'</span> => <span class="pl-s">'<span class="pl-s">array</span>'</span>, <span class="pl-c">//'base_uri' => 'https://api.binance.com',</span> <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">https://testnet.binance.vision</span>'</span>, <span class="pl-c">// testnet</span> <span class="pl-s">'<span class="pl-s">app_key</span>'</span> => <span class="pl-s">'<span class="pl-s">your app key</span>'</span>, <span class="pl-s">'<span class="pl-s">secret</span>'</span> => <span class="pl-s">'<span class="pl-s">your secret</span>'</span>, <span class="pl-s">'<span class="pl-s">proxy</span>'</span> => [ <span class="pl-s">'<span class="pl-s">http</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "http"</span> <span class="pl-s">'<span class="pl-s">https</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "https"</span> <span class="pl-s">'<span class="pl-s">no</span>'</span> => [<span class="pl-s">'<span class="pl-s">.mit.edu</span>'</span>, <span class="pl-s">'<span class="pl-s">foo.com</span>'</span>], <span class="pl-c">// Don't use a proxy with these</span> ], <span class="pl-s">'<span class="pl-s">websocket</span>'</span> => [ <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://stream.binance.com:9443</span>'</span>, <span class="pl-s">'<span class="pl-s">listen_ip</span>'</span> => <span class="pl-s">'<span class="pl-s">127.0.0.1</span>'</span>, <span class="pl-c">// listen ip</span> <span class="pl-s">'<span class="pl-s">listen_port</span>'</span> => <span class="pl-c1">2207</span>, <span class="pl-c">// listen port</span> <span class="pl-s">'<span class="pl-s">heartbeat_time</span>'</span> => <span class="pl-c1">20</span>, <span class="pl-c">// Heartbeat detection time, seconds</span> <span class="pl-s">'<span class="pl-s">timer_time</span>'</span> => <span class="pl-c1">3</span>, <span class="pl-c">// Scheduled task time,seconds</span> <span class="pl-s">'<span class="pl-s">max_size</span>'</span> => <span class="pl-c1">100</span>, <span class="pl-c">// Data retention,1~1000,Data is stored by channel name</span> <span class="pl-s">'<span class="pl-s">data_time</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-c">// Time interval for getting data,seconds</span> <span class="pl-s">'<span class="pl-s">debug</span>'</span> => <span class="pl-c1">true</span>, ], <span class="pl-s">'<span class="pl-s">log</span>'</span> => [ <span class="pl-s">'<span class="pl-s">level</span>'</span> => <span class="pl-s">'<span class="pl-s">debug</span>'</span>, <span class="pl-s">'<span class="pl-s">file</span>'</span> => <span class="pl-s">'<span class="pl-s">/tmp/exchange.log</span>'</span>, ], <span class="pl-c">// ...</span> ], ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span> = Factory::<span class="pl-en">binance</span>(<span class="pl-s1"><span class="pl-c1">$</span>config</span>[<span class="pl-s">'<span class="pl-s">binance</span>'</span>]); <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">ping</span>();</pre></div> </details> <details> <summary> 1. Basic Information </summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Test Connectivity $app->basic->ping(); // Check Server Time $app->basic->systemTime(); // Exchange Information $app->basic->exchangeInfo(); // System Status $app->basic->systemStatus();"><pre><span class="pl-c">// Test Connectivity</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">ping</span>(); <span class="pl-c">// Check Server Time</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemTime</span>(); <span class="pl-c">// Exchange Information</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">exchangeInfo</span>(); <span class="pl-c">// System Status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemStatus</span>();</pre></div> </details> <details> <summary>2. Account Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get BNB Burn Status $app->user->getBnbBurnStatus(); // Toggle BNB Burn On Spot Trade And Margin Interest $params = []; // For specific values, see the corresponding api document, the same below $app->user->bnbBurn($params);"><pre><span class="pl-c">// Get BNB Burn Status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">getBnbBurnStatus</span>(); <span class="pl-c">// Toggle BNB Burn On Spot Trade And Margin Interest</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []; <span class="pl-c">// For specific values, see the corresponding api document, the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">bnbBurn</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>3. Market Data</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Order Book $symbol = 'ETHBTC'; $app->market->depth($symbol); // Recent Trades List $app->market->trades($symbol, 10); // Old Trade Lookup $app->market->historicalTrades($symbol, 10); // Compressed/Aggregate Trades List $app->market->aggTrades($symbol); // Kline/Candlestick Data $params = [ 'symbol' => 'ETHBTC', 'interval' => 'DAY', 'startTime' => 'timestamp', 'endTime' => 'timestamp', 'limit' => 10, ]; $app->market->kline($params); // Current Average Price $app->market->avgPrice($symbol); // 24hr Ticker Price Change Statistics $app->market->hr24($symbol); // Symbol Price Ticker $app->market->price($symbol); // Symbol Order Book Ticker $app->market->bookTicker($symbol);"><pre><span class="pl-c">// Order Book</span> <span class="pl-s1"><span class="pl-c1">$</span>symbol</span> = <span class="pl-s">'<span class="pl-s">ETHBTC</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Recent Trades List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>, <span class="pl-c1">10</span>); <span class="pl-c">// Old Trade Lookup</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">historicalTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>, <span class="pl-c1">10</span>); <span class="pl-c">// Compressed/Aggregate Trades List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">aggTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Kline/Candlestick Data</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">ETHBTC</span>'</span>, <span class="pl-s">'<span class="pl-s">interval</span>'</span> => <span class="pl-s">'<span class="pl-s">DAY</span>'</span>, <span class="pl-s">'<span class="pl-s">startTime</span>'</span> => <span class="pl-s">'<span class="pl-s">timestamp</span>'</span>, <span class="pl-s">'<span class="pl-s">endTime</span>'</span> => <span class="pl-s">'<span class="pl-s">timestamp</span>'</span>, <span class="pl-s">'<span class="pl-s">limit</span>'</span> => <span class="pl-c1">10</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Current Average Price</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">avgPrice</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// 24hr Ticker Price Change Statistics</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">hr24</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Symbol Price Ticker</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">price</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Symbol Order Book Ticker</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">bookTicker</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>);</pre></div> </details> <details> <summary>4. Wallet</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// All Coins' Information $app->market->getAll(); // Daily Account Snapshot $params = []; // For specific values, see the corresponding api document, the same below $app->market->accountSnapshot($params); // Disable Fast Withdraw Switch $app->market->disableFastWithdrawSwitch(); // Enable Fast Withdraw Switch $app->market->enableFastWithdrawSwitch(); // Withdraw[SAPI]-Submit a withdraw request $app->market->withdrawApply($params); // Withdraw[WAPI]-Submit a withdraw request $app->market->withdraw($params); // Deposit History(supporting network) $app->market->capitalDepositHistory($params); // Deposit History $app->market->depositHistory($params); // Withdraw History(supporting network) $app->market->capitalWithdrawHistory($params); // Withdraw History $app->market->withdrawHistory($params); // Deposit Address (supporting network) $app->market->capitalDepositAddress($params); // Deposit Address $app->market->depositAddress($params); // Account Status $app->market->accountStatus(); // Account API Trading Status $app->market->apiTradingStatus(); // DustLog-Fetch small amounts of assets exchanged BNB records $app->market->userAssetDribbletLog(); // DustLog(SAPI) $app->market->assetDribblet(); // Dust Transfer-Convert dust assets to BNB. //It is written on the Binance document:ARRAY,the asset being converted. For example:asset = BTC&asset = USDT $asset = []; $app->market->assetDust($asset); // Asset Dividend Record $app->market->assetDividend($params); // Asset Detail $app->market->assetDetail(); // Trade Fee $app->market->tradeFee(); // Trade Fee(SAPI) $app->market->assetTradeFee(); // User Universal Transfer $app->market->transfer($params); // Query User Universal Transfer History $app->market->transferHistory($params);"><pre><span class="pl-c">// All Coins' Information</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">getAll</span>(); <span class="pl-c">// Daily Account Snapshot</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []; <span class="pl-c">// For specific values, see the corresponding api document, the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">accountSnapshot</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Disable Fast Withdraw Switch</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">disableFastWithdrawSwitch</span>(); <span class="pl-c">// Enable Fast Withdraw Switch</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">enableFastWithdrawSwitch</span>(); <span class="pl-c">// Withdraw[SAPI]-Submit a withdraw request</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">withdrawApply</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Withdraw[WAPI]-Submit a withdraw request</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">withdraw</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Deposit History(supporting network)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">capitalDepositHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Deposit History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depositHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Withdraw History(supporting network)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">capitalWithdrawHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Withdraw History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">withdrawHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Deposit Address (supporting network)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">capitalDepositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Deposit Address</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Account Status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">accountStatus</span>(); <span class="pl-c">// Account API Trading Status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">apiTradingStatus</span>(); <span class="pl-c">// DustLog-Fetch small amounts of assets exchanged BNB records</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">userAssetDribbletLog</span>(); <span class="pl-c">// DustLog(SAPI)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">assetDribblet</span>(); <span class="pl-c">// Dust Transfer-Convert dust assets to BNB.</span> <span class="pl-c">//It is written on the Binance document:ARRAY,the asset being converted. For example:asset = BTC&asset = USDT</span> <span class="pl-s1"><span class="pl-c1">$</span>asset</span> = []; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">assetDust</span>(<span class="pl-s1"><span class="pl-c1">$</span>asset</span>); <span class="pl-c">// Asset Dividend Record</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">assetDividend</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Asset Detail</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">assetDetail</span>(); <span class="pl-c">// Trade Fee</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">tradeFee</span>(); <span class="pl-c">// Trade Fee(SAPI)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">assetTradeFee</span>(); <span class="pl-c">// User Universal Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query User Universal Transfer History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">transferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>5. Spot Trade</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Test New Order $params = [ 'symbol' => 'LTCUSDT', 'side' => 'SELL', //BUY or SELL 'type' => 'LIMIT', 'timeInForce' => 'GTC', 'quantity' => 0.1, 'price' => 180, 'recvWindow' => 10000, ]; $app->spot->orderTest($params); // New Order $params = [ 'symbol' => 'LTCUSDT', 'side' => 'SELL', //BUY or SELL 'type' => 'LIMIT', 'timeInForce' => 'GTC', 'quantity' => 0.1, 'price' => 180, 'recvWindow' => 10000, ]; $app->spot->order($params); // Cancel Order $params = [ 'symbol' => 'LTCUSDT', 'orderId' => 3946, 'recvWindow' => 10000, ]; $app->spot->cancelOrder($params); // Cancel all Open Orders on a Symbol $app->spot->cancelOrders('ETHBTC'); // Query Order $params = []; // For specific values, see the corresponding api document, the same below $app->spot->get($params); // Current Open Orders $app->spot->openOrders('ETHBTC'); // All Orders-Get all account orders; active, canceled, or filled. $app->spot->allOrders($params); // New OCO $app->spot->oco($params); // Cancel OCO $app->spot->cancelOcoOrder($params); // Query OCO $app->spot->getOcoOrder($params); // Query all OCO $app->spot->allOrderList($params); // Query Open OCO $app->spot->openOrderList($params); // Account Trade List $app->spot->myTrades($params);"><pre><span class="pl-c">// Test New Order</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">LTCUSDT</span>'</span>, <span class="pl-s">'<span class="pl-s">side</span>'</span> => <span class="pl-s">'<span class="pl-s">SELL</span>'</span>, <span class="pl-c">//BUY or SELL</span> <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">LIMIT</span>'</span>, <span class="pl-s">'<span class="pl-s">timeInForce</span>'</span> => <span class="pl-s">'<span class="pl-s">GTC</span>'</span>, <span class="pl-s">'<span class="pl-s">quantity</span>'</span> => <span class="pl-c1">0.1</span>, <span class="pl-s">'<span class="pl-s">price</span>'</span> => <span class="pl-c1">180</span>, <span class="pl-s">'<span class="pl-s">recvWindow</span>'</span> => <span class="pl-c1">10000</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">orderTest</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// New Order</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">LTCUSDT</span>'</span>, <span class="pl-s">'<span class="pl-s">side</span>'</span> => <span class="pl-s">'<span class="pl-s">SELL</span>'</span>, <span class="pl-c">//BUY or SELL</span> <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">LIMIT</span>'</span>, <span class="pl-s">'<span class="pl-s">timeInForce</span>'</span> => <span class="pl-s">'<span class="pl-s">GTC</span>'</span>, <span class="pl-s">'<span class="pl-s">quantity</span>'</span> => <span class="pl-c1">0.1</span>, <span class="pl-s">'<span class="pl-s">price</span>'</span> => <span class="pl-c1">180</span>, <span class="pl-s">'<span class="pl-s">recvWindow</span>'</span> => <span class="pl-c1">10000</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel Order</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">LTCUSDT</span>'</span>, <span class="pl-s">'<span class="pl-s">orderId</span>'</span> => <span class="pl-c1">3946</span>, <span class="pl-s">'<span class="pl-s">recvWindow</span>'</span> => <span class="pl-c1">10000</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all Open Orders on a Symbol</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s">'<span class="pl-s">ETHBTC</span>'</span>); <span class="pl-c">// Query Order</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []; <span class="pl-c">// For specific values, see the corresponding api document, the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Current Open Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">openOrders</span>(<span class="pl-s">'<span class="pl-s">ETHBTC</span>'</span>); <span class="pl-c">// All Orders-Get all account orders; active, canceled, or filled.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">allOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// New OCO</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">oco</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel OCO</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelOcoOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query OCO</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">getOcoOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query all OCO</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">allOrderList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Open OCO</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">openOrderList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Account Trade List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">myTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>6. Cross Margin Account Transfer</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Cross Margin Account Transfer $app->margin->transfer($params); // Margin Account Borrow $app->margin->loan($params); // Margin Account Repay $app->margin->repay($params); // Query Margin Asset $asset = 'BNB'; $app->margin->asset($asset); // Query Cross Margin Pair $symbol = 'LTCUSDT'; $app->margin->pair($symbol); // Get All Margin Assets $app->margin->allAssets(); // Get All Cross Margin Pairs $app->margin->allPairs(); // Query Margin PriceIndex $app->margin->priceIndex($symbol); // Margin Account New Order $app->margin->order($params); // Margin Account Cancel Order $app->margin->cancelOrder($params); // Margin Account Cancel all Open Orders on a Symbol $app->margin->cancelOrders($params); // Get Cross Margin Transfer History $app->margin->transferHistory($params); // Query Loan Record $app->margin->loanHistory($params); // Query Repay Record $app->margin->repayHistory($params); // Get Interest History $app->margin->interestHistory($params); // Get Force Liquidation Record $app->margin->forceLiquidationRec($params); // Query Cross Margin Account Details $app->margin->account(); // Query Margin Account's Order $app->margin->get($params); // Query Margin Account's Open Orders $app->margin->openOrders($params); // Query Margin Account's All Orders $app->margin->allOrders($params); // Query Margin Account's Trade List $app->margin->myTrades($params); // Query Max Borrow $app->margin->maxBorrowable($params); // Query Max Transfer-Out Amount $app->margin->maxTransferable($params); // Create Isolated Margin Account $app->margin->create($params); // Isolated Margin Account Transfer $app->margin->isolatedTransfer($params); // Get Isolated Margin Transfer History $app->margin->isolatedTransferHistory($params); // Query Isolated Margin Account Info $symbols = 'BTCUSDT,BNBUSDT,ADAUSDT'; $app->margin->isolatedAccount($symbols); // Query Isolated Margin Symbol $app->margin->isolatedPair($symbol); // Get All Isolated Margin Symbol $app->margin->isolatedAllPairs(); // Query Margin Interest Rate History $app->margin->interestRateHistory($params);"><pre><span class="pl-c">// Cross Margin Account Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Margin Account Borrow</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loan</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Margin Account Repay</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">repay</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Margin Asset</span> <span class="pl-s1"><span class="pl-c1">$</span>asset</span> = <span class="pl-s">'<span class="pl-s">BNB</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">asset</span>(<span class="pl-s1"><span class="pl-c1">$</span>asset</span>); <span class="pl-c">// Query Cross Margin Pair</span> <span class="pl-s1"><span class="pl-c1">$</span>symbol</span> = <span class="pl-s">'<span class="pl-s">LTCUSDT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">pair</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get All Margin Assets</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">allAssets</span>(); <span class="pl-c">// Get All Cross Margin Pairs</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">allPairs</span>(); <span class="pl-c">// Query Margin PriceIndex</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">priceIndex</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Margin Account New Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Margin Account Cancel Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Margin Account Cancel all Open Orders on a Symbol</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Cross Margin Transfer History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">transferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Loan Record</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Repay Record</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">repayHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Interest History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">interestHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Force Liquidation Record</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">forceLiquidationRec</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Cross Margin Account Details</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">account</span>(); <span class="pl-c">// Query Margin Account's Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Margin Account's Open Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Margin Account's All Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">allOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Margin Account's Trade List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">myTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Max Borrow</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">maxBorrowable</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Max Transfer-Out Amount</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">maxTransferable</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Create Isolated Margin Account</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">create</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Isolated Margin Account Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">isolatedTransfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Isolated Margin Transfer History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">isolatedTransferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query Isolated Margin Account Info</span> <span class="pl-s1"><span class="pl-c1">$</span>symbols</span> = <span class="pl-s">'<span class="pl-s">BTCUSDT,BNBUSDT,ADAUSDT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">isolatedAccount</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbols</span>); <span class="pl-c">// Query Isolated Margin Symbol</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">isolatedPair</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get All Isolated Margin Symbol</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">isolatedAllPairs</span>(); <span class="pl-c">// Query Margin Interest Rate History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">interestRateHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>7. Futures</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// New Future Account Transfer $app->future->transfer($params); // Get Future Account Transaction History List $app->future->transferHistory($params); // Borrow For Cross-Collateral $app->future->borrow($params); // Cross-Collateral Borrow History $app->future->borrowHistory($params); // Repay For Cross-Collateral $app->future->repay($params); // Cross-Collateral Repayment History $app->future->repayHistory($params); // Cross-Collateral Wallet - v1 & v2,default v1,the same below $version = 'v1'; $app->future->wallet($version); // Cross-Collateral Information - v1 & v2,default v1,the same below $app->future->configs($params, $version); // Calculate Rate After Adjust Cross-Collateral LTV - v1 & v2 $app->future->calcAdjustLevel($params, $version); // Get Max Amount for Adjust Cross-Collateral LTV - v1 & v2 $app->future->calcMaxAdjustAmount($params, $version); // Adjust Cross-Collateral LTV - v1 & v2 $app->future->adjustCollateral($params, $version); // Adjust Cross-Collateral LTV History $app->future->adjustCollateralHistory($params); // Cross-Collateral Liquidation History $app->future->liquidationHistory($params); // Check Collateral Repay Limit-Check the maximum and minimum limit when repay with collateral $app->future->collateralRepayLimit($params); // Get Collateral Repay Quote $app->future->getCollateralRepay($params); // Repay with Collateral-Repay with collateral. Get quote before repay with collateral is mandatory, the quote will be valid within 25 seconds $quoteId = '8a03da95f0ad4fdc8067e3b6cde72423'; $app->future->collateralRepay($quoteId); // Collateral Repayment Result $app->future->collateralRepayResult($quoteId); // Cross-Collateral Interest History $app->future->interestHistory($params);"><pre><span class="pl-c">// New Future Account Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Future Account Transaction History List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">transferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Borrow For Cross-Collateral</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">borrow</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cross-Collateral Borrow History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">borrowHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Repay For Cross-Collateral</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">repay</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cross-Collateral Repayment History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">repayHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cross-Collateral Wallet - v1 & v2,default v1,the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>version</span> = <span class="pl-s">'<span class="pl-s">v1</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">wallet</span>(<span class="pl-s1"><span class="pl-c1">$</span>version</span>); <span class="pl-c">// Cross-Collateral Information - v1 & v2,default v1,the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">configs</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>, <span class="pl-s1"><span class="pl-c1">$</span>version</span>); <span class="pl-c">// Calculate Rate After Adjust Cross-Collateral LTV - v1 & v2</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">calcAdjustLevel</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>, <span class="pl-s1"><span class="pl-c1">$</span>version</span>); <span class="pl-c">// Get Max Amount for Adjust Cross-Collateral LTV - v1 & v2</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">calcMaxAdjustAmount</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>, <span class="pl-s1"><span class="pl-c1">$</span>version</span>); <span class="pl-c">// Adjust Cross-Collateral LTV - v1 & v2</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">adjustCollateral</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>, <span class="pl-s1"><span class="pl-c1">$</span>version</span>); <span class="pl-c">// Adjust Cross-Collateral LTV History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">adjustCollateralHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cross-Collateral Liquidation History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">liquidationHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Check Collateral Repay Limit-Check the maximum and minimum limit when repay with collateral</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">collateralRepayLimit</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Collateral Repay Quote</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">getCollateralRepay</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Repay with Collateral-Repay with collateral. Get quote before repay with collateral is mandatory, the quote will be valid within 25 seconds</span> <span class="pl-s1"><span class="pl-c1">$</span>quoteId</span> = <span class="pl-s">'<span class="pl-s">8a03da95f0ad4fdc8067e3b6cde72423</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">collateralRepay</span>(<span class="pl-s1"><span class="pl-c1">$</span>quoteId</span>); <span class="pl-c">// Collateral Repayment Result</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">collateralRepayResult</span>(<span class="pl-s1"><span class="pl-c1">$</span>quoteId</span>); <span class="pl-c">// Cross-Collateral Interest History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">interestHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>8. Mining</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Acquiring Algorithm $app->pool->algoList(); // Acquiring CoinName $app->pool->coinList(); // Request for Detail Miner List $app->pool->workerDetail($params); // Request for Miner List $app->pool->workerList($params); // Earnings List $app->pool->paymentList($params); // Extra Bonus List $app->pool->paymentOther($params); // Hashrate Resale Detail List $app->pool->hashTransferConfigDetails($params); // Hashrate Resale List $app->pool->hashTransferConfigDetailsList($params); // Hashrate Resale Detail $app->pool->hashTransferProfitDetails($params); // Hashrate Resale Request $app->pool->hashTransferConfig($params); // Cancel hashrate resale configuration $app->pool->hashTransferConfigCancel($params); // Statistic List $app->pool->userStatus($params); // Account List $app->pool->userList($params);"><pre><span class="pl-c">// Acquiring Algorithm</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">algoList</span>(); <span class="pl-c">// Acquiring CoinName</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">coinList</span>(); <span class="pl-c">// Request for Detail Miner List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">workerDetail</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Request for Miner List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">workerList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Earnings List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">paymentList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Extra Bonus List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">paymentOther</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Hashrate Resale Detail List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">hashTransferConfigDetails</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Hashrate Resale List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">hashTransferConfigDetailsList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Hashrate Resale Detail</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">hashTransferProfitDetails</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Hashrate Resale Request</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">hashTransferConfig</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel hashrate resale configuration</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">hashTransferConfigCancel</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Statistic List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">userStatus</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Account List</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">pool</span>-><span class="pl-en">userList</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Huobi</h3><a id="user-content-huobi" class="anchor" aria-label="Permalink: Huobi" href="#huobi"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <details> <summary><b> 🚀 Quick Start </b></summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="<?php use EasyExchange\Factory; $config = [ 'huobi' => [ 'response_type' => 'array', 'base_uri' => 'https://api.huobi.pro', 'app_key' => 'your app key', 'secret' => 'your secret', 'proxy' => [ 'http' => 'socks5h://127.0.0.1:1080', // Use this proxy with "http" 'https' => 'socks5h://127.0.0.1:1080', // Use this proxy with "https" 'no' => ['.mit.edu', 'foo.com'], // Don't use a proxy with these ], 'websocket' => [ 'base_uri' => [ [ 'url' => 'ws://api.huobi.pro/ws', 'type' => 'public', ], [ 'url' => 'ws://api.huobi.pro/ws/v2', 'type' => 'private', ] ], 'listen_ip' => '127.0.0.1', // listen ip 'listen_port' => 2207, // listen port 'heartbeat_time' => 20, // Heartbeat detection time, seconds 'timer_time' => 3, // Scheduled task time,seconds 'max_size' => 100, // Data retention,1~1000,Data is stored by channel name 'data_time' => 1, // Time interval for getting data,seconds 'debug' => true, ], 'log' => [ 'level' => 'debug', 'file' => '/tmp/exchange.log', ], // ... ], ]; $app = Factory::houbi($config['houbi']); $app->basic->systemStatus();"><pre><span class="pl-ent"><?php</span> <span class="pl-k">use</span> <span class="pl-v">EasyExchange</span>\<span class="pl-smi">Factory</span>; <span class="pl-s1"><span class="pl-c1">$</span>config</span> = [ <span class="pl-s">'<span class="pl-s">huobi</span>'</span> => [ <span class="pl-s">'<span class="pl-s">response_type</span>'</span> => <span class="pl-s">'<span class="pl-s">array</span>'</span>, <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">https://api.huobi.pro</span>'</span>, <span class="pl-s">'<span class="pl-s">app_key</span>'</span> => <span class="pl-s">'<span class="pl-s">your app key</span>'</span>, <span class="pl-s">'<span class="pl-s">secret</span>'</span> => <span class="pl-s">'<span class="pl-s">your secret</span>'</span>, <span class="pl-s">'<span class="pl-s">proxy</span>'</span> => [ <span class="pl-s">'<span class="pl-s">http</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "http"</span> <span class="pl-s">'<span class="pl-s">https</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "https"</span> <span class="pl-s">'<span class="pl-s">no</span>'</span> => [<span class="pl-s">'<span class="pl-s">.mit.edu</span>'</span>, <span class="pl-s">'<span class="pl-s">foo.com</span>'</span>], <span class="pl-c">// Don't use a proxy with these</span> ], <span class="pl-s">'<span class="pl-s">websocket</span>'</span> => [ <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => [ [ <span class="pl-s">'<span class="pl-s">url</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://api.huobi.pro/ws</span>'</span>, <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">public</span>'</span>, ], [ <span class="pl-s">'<span class="pl-s">url</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://api.huobi.pro/ws/v2</span>'</span>, <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">private</span>'</span>, ] ], <span class="pl-s">'<span class="pl-s">listen_ip</span>'</span> => <span class="pl-s">'<span class="pl-s">127.0.0.1</span>'</span>, <span class="pl-c">// listen ip</span> <span class="pl-s">'<span class="pl-s">listen_port</span>'</span> => <span class="pl-c1">2207</span>, <span class="pl-c">// listen port</span> <span class="pl-s">'<span class="pl-s">heartbeat_time</span>'</span> => <span class="pl-c1">20</span>, <span class="pl-c">// Heartbeat detection time, seconds</span> <span class="pl-s">'<span class="pl-s">timer_time</span>'</span> => <span class="pl-c1">3</span>, <span class="pl-c">// Scheduled task time,seconds</span> <span class="pl-s">'<span class="pl-s">max_size</span>'</span> => <span class="pl-c1">100</span>, <span class="pl-c">// Data retention,1~1000,Data is stored by channel name</span> <span class="pl-s">'<span class="pl-s">data_time</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-c">// Time interval for getting data,seconds</span> <span class="pl-s">'<span class="pl-s">debug</span>'</span> => <span class="pl-c1">true</span>, ], <span class="pl-s">'<span class="pl-s">log</span>'</span> => [ <span class="pl-s">'<span class="pl-s">level</span>'</span> => <span class="pl-s">'<span class="pl-s">debug</span>'</span>, <span class="pl-s">'<span class="pl-s">file</span>'</span> => <span class="pl-s">'<span class="pl-s">/tmp/exchange.log</span>'</span>, ], <span class="pl-c">// ...</span> ], ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span> = Factory::<span class="pl-en">houbi</span>(<span class="pl-s1"><span class="pl-c1">$</span>config</span>[<span class="pl-s">'<span class="pl-s">houbi</span>'</span>]); <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemStatus</span>();</pre></div> </details> <details> <summary>1. Basic Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get system status $app->basic->systemStatus(); // Get Market Status $app->basic->marketStatus(); // Get all Supported Trading Symbol $app->basic->exchangeInfo(); // Get all Supported Currencies $app->basic->currencys(); // APIv2 - Currency & Chains $app->basic->currencies(); // Get Current Timestamp $app->basic->systemTime();"><pre><span class="pl-c">// Get system status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemStatus</span>(); <span class="pl-c">// Get Market Status</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">marketStatus</span>(); <span class="pl-c">// Get all Supported Trading Symbol</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">exchangeInfo</span>(); <span class="pl-c">// Get all Supported Currencies</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">currencys</span>(); <span class="pl-c">// APIv2 - Currency & Chains</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">currencies</span>(); <span class="pl-c">// Get Current Timestamp</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemTime</span>();</pre></div> </details> <details> <summary>2. Account Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get all Accounts of the Current User $app->user->accounts(); // Get Account Balance of a Specific Account $account_id = 360218; $app->user->balance($account_id); // Get Asset Valuation $params = []; // For specific values, see the corresponding api document, the same below $app->user->assetValuation($params); // Asset Transfer $app->user->transfer($params); // Get Account History $app->user->history($params); // Get Account Ledger $app->user->ledger($params); // Transfer Fund Between Spot Account and Future Contract Account $app->user->futuresTransfer($params); // Get Point Balance $app->user->point($subUid = ''); // Point Transfer $app->user->pointTransfer($params);"><pre><span class="pl-c">// Get all Accounts of the Current User</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">accounts</span>(); <span class="pl-c">// Get Account Balance of a Specific Account</span> <span class="pl-s1"><span class="pl-c1">$</span>account_id</span> = <span class="pl-c1">360218</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">balance</span>(<span class="pl-s1"><span class="pl-c1">$</span>account_id</span>); <span class="pl-c">// Get Asset Valuation</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []; <span class="pl-c">// For specific values, see the corresponding api document, the same below</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">assetValuation</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Asset Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Account History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">history</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Account Ledger</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">ledger</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer Fund Between Spot Account and Future Contract Account</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">futuresTransfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Point Balance</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">point</span>(<span class="pl-s1"><span class="pl-c1">$</span>subUid</span> = <span class="pl-s">''</span>); <span class="pl-c">// Point Transfer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">pointTransfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>3. Market Data</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Klines(Candles) $params = [ 'symbol' => 'btcusdt', 'period' => '5min', ]; $app->market->kline($params); // Get Latest Aggregated Ticker $app->market->aggTrades($symbol); // Get Latest Tickers for All Pairs $app->market->tickers(); // Get Market Depth $app->market->depth($params); // Get the Last Trade $app->market->trades($symbol); // Get the Most Recent Trades $app->market->historicalTrades($symbol); // Get the Last 24h Market Summary $app->market->hr24($symbol); // Get real time NAV $app->market->etp($symbol);"><pre><span class="pl-c">// Get Klines(Candles)</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">btcusdt</span>'</span>, <span class="pl-s">'<span class="pl-s">period</span>'</span> => <span class="pl-s">'<span class="pl-s">5min</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Latest Aggregated Ticker</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">aggTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get Latest Tickers for All Pairs</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">tickers</span>(); <span class="pl-c">// Get Market Depth</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get the Last Trade</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get the Most Recent Trades</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">historicalTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get the Last 24h Market Summary</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">hr24</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>); <span class="pl-c">// Get real time NAV</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">etp</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span>);</pre></div> </details> <details> <summary>4. Wallet</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Query Deposit Address $currency = 'btc'; $app->wallet->depositAddress($currency); // Query Withdraw Quota $app->wallet->withdrawQuota($currency); // Query withdraw address $params = [ 'currency' => 'xrp', ]; $app->wallet->withdrawAddress($params); // Create a Withdraw Request $app->wallet->withdraw($params); // Cancel a Withdraw Request $app->wallet->cancelWithdraw($params); // Search for Existed Withdraws and Deposits $app->wallet->depositHistory($params);"><pre><span class="pl-c">// Query Deposit Address</span> <span class="pl-s1"><span class="pl-c1">$</span>currency</span> = <span class="pl-s">'<span class="pl-s">btc</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Query Withdraw Quota</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawQuota</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Query withdraw address</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">currency</span>'</span> => <span class="pl-s">'<span class="pl-s">xrp</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Create a Withdraw Request</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdraw</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel a Withdraw Request</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">cancelWithdraw</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Search for Existed Withdraws and Deposits</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>5. Trading</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Place a New Order $params = [ 'account-id' => 360000, 'symbol' => 'btcusdt', 'type' => 'buy-limit', 'amount' => 0.001, 'price' => 10000, ]; $app->trade->order($params); // Place a Batch of Orders $app->trade->batchOrders($params); // Submit Cancel for an Order $app->trade->cancelOrder('204533841408061'); // Submit Cancel for an Order (based on client order ID) $client_order_id = 'a0001'; $app->trade->cancelClientOrder($client_order_id); // Get All Open Orders $params = [ 'account-id' => 360000, 'symbol' => 'btcusdt', // 'side' => 'both', ]; $app->trade->openOrders($params); // Submit Cancel for Multiple Orders by Criteria $app->trade->batchCancelOpenOrders($params); // Submit Cancel for Multiple Orders by IDs $order_ids = ['5983466', '5722939', '5721027']; $app->trade->batchCancel($order_ids); // Dead man’s switch $timeout = 10; $app->trade->cancelAllAfter($timeout); // Get the Order Detail of an Order $order_id = '59378'; $app->trade->get($order_id); // Get the Order Detail of an Order (based on client order ID) $order_client_id = 'a0001'; $app->trade->getClientOrder($order_client_id); // Get the Match Result of an Order $app->trade->matchResult($order_id); // Search Past Orders $app->trade->getOrders($params); // Search Historical Orders within 48 Hours $app->trade->hr48History($params); // Search Match Results $app->trade->matchResults($params); // Get Current Fee Rate Applied to The User $symbols = 'btcusdt,ethusdt,ltcusdt'; $app->trade->transactFeeRate($symbols);"><pre><span class="pl-c">// Place a New Order</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">account-id</span>'</span> => <span class="pl-c1">360000</span>, <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">btcusdt</span>'</span>, <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">buy-limit</span>'</span>, <span class="pl-s">'<span class="pl-s">amount</span>'</span> => <span class="pl-c1">0.001</span>, <span class="pl-s">'<span class="pl-s">price</span>'</span> => <span class="pl-c1">10000</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Place a Batch of Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">batchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Submit Cancel for an Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s">'<span class="pl-s">204533841408061</span>'</span>); <span class="pl-c">// Submit Cancel for an Order (based on client order ID)</span> <span class="pl-s1"><span class="pl-c1">$</span>client_order_id</span> = <span class="pl-s">'<span class="pl-s">a0001</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelClientOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>client_order_id</span>); <span class="pl-c">// Get All Open Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">account-id</span>'</span> => <span class="pl-c1">360000</span>, <span class="pl-s">'<span class="pl-s">symbol</span>'</span> => <span class="pl-s">'<span class="pl-s">btcusdt</span>'</span>, <span class="pl-c">// 'side' => 'both',</span> ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Submit Cancel for Multiple Orders by Criteria</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">batchCancelOpenOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Submit Cancel for Multiple Orders by IDs</span> <span class="pl-s1"><span class="pl-c1">$</span>order_ids</span> = [<span class="pl-s">'<span class="pl-s">5983466</span>'</span>, <span class="pl-s">'<span class="pl-s">5722939</span>'</span>, <span class="pl-s">'<span class="pl-s">5721027</span>'</span>]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">batchCancel</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_ids</span>); <span class="pl-c">// Dead man’s switch</span> <span class="pl-s1"><span class="pl-c1">$</span>timeout</span> = <span class="pl-c1">10</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelAllAfter</span>(<span class="pl-s1"><span class="pl-c1">$</span>timeout</span>); <span class="pl-c">// Get the Order Detail of an Order</span> <span class="pl-s1"><span class="pl-c1">$</span>order_id</span> = <span class="pl-s">'<span class="pl-s">59378</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Get the Order Detail of an Order (based on client order ID)</span> <span class="pl-s1"><span class="pl-c1">$</span>order_client_id</span> = <span class="pl-s">'<span class="pl-s">a0001</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">getClientOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_client_id</span>); <span class="pl-c">// Get the Match Result of an Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">matchResult</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Search Past Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">getOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Search Historical Orders within 48 Hours</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">hr48History</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Search Match Results</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">matchResults</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Current Fee Rate Applied to The User</span> <span class="pl-s1"><span class="pl-c1">$</span>symbols</span> = <span class="pl-s">'<span class="pl-s">btcusdt,ethusdt,ltcusdt</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">transactFeeRate</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbols</span>);</pre></div> </details> <details> <summary>6. Margin Loan(Cross/Isolated)</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Repay Margin Loan(Cross/Isolated ) $app->margin->repayment($params); // Transfer Asset from Spot Trading Account to Isolated Margin Account(Isolated). $app->margin->transferIn($params); // Transfer Asset from Isolated Margin Account to Spot Trading Account(Isolated). $app->margin->transferOut($params); // Get Loan Interest Rate and Quota(Isolated). $app->margin->loanInfo($params); // Request a Margin Loan(Isolated). $app->margin->orders($params); // Repay Margin Loan(Isolated). $app->margin->repay($order_id, $amount); // Search Past Margin Orders(Isolated). $app->margin->loanOrders($params); // Get the Balance of the Margin Loan Account(Isolated). $app->margin->balance($symbol = '', $sub_uid = ''); // Transfer Asset from Spot Trading Account to Cross Margin Account(Cross). $app->margin->crossTransferIn($currency, $amount); // Transfer Asset from Cross Margin Account to Spot Trading Account(Cross). $app->margin->crossTransferOut($currency, $amount); // Get Loan Interest Rate and Quota(Cross). $app->margin->crossLoanInfo(); // Request a Margin Loan(Cross). $app->margin->crossOrders($currency, $amount); // Repay Margin Loan(Cross). $app->margin->crossRepay($order_id, $amount); // Search Past Margin Orders(Cross). $app->margin->crossLoanOrders($params); // Get the Balance of the Margin Loan Account(Cross). $app->margin->crossBalance($sub_uid = ''); // Repayment Record Reference(Cross). $app->margin->getRepayment($params);"><pre><span class="pl-c">// Repay Margin Loan(Cross/Isolated )</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">repayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer Asset from Spot Trading Account to Isolated Margin Account(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">transferIn</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer Asset from Isolated Margin Account to Spot Trading Account(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">transferOut</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Loan Interest Rate and Quota(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanInfo</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Request a Margin Loan(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">orders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Repay Margin Loan(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">repay</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>amount</span>); <span class="pl-c">// Search Past Margin Orders(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get the Balance of the Margin Loan Account(Isolated).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">balance</span>(<span class="pl-s1"><span class="pl-c1">$</span>symbol</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>sub_uid</span> = <span class="pl-s">''</span>); <span class="pl-c">// Transfer Asset from Spot Trading Account to Cross Margin Account(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossTransferIn</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>, <span class="pl-s1"><span class="pl-c1">$</span>amount</span>); <span class="pl-c">// Transfer Asset from Cross Margin Account to Spot Trading Account(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossTransferOut</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>, <span class="pl-s1"><span class="pl-c1">$</span>amount</span>); <span class="pl-c">// Get Loan Interest Rate and Quota(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossLoanInfo</span>(); <span class="pl-c">// Request a Margin Loan(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>, <span class="pl-s1"><span class="pl-c1">$</span>amount</span>); <span class="pl-c">// Repay Margin Loan(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossRepay</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>amount</span>); <span class="pl-c">// Search Past Margin Orders(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossLoanOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get the Balance of the Margin Loan Account(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">crossBalance</span>(<span class="pl-s1"><span class="pl-c1">$</span>sub_uid</span> = <span class="pl-s">''</span>); <span class="pl-c">// Repayment Record Reference(Cross).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">getRepayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>7. Conditional Order</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Place a conditional order $app->algo->order($params); // Cancel conditional orders (before triggering). $app->algo->cancelOrder($clientOrderIds); // Query open conditional orders (before triggering). $app->algo->openOrders($params); // Query conditional order history. $app->algo->orderHistory($params); // Query a specific conditional order. $app->algo->specific($clientOrderId);"><pre><span class="pl-c">// Place a conditional order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel conditional orders (before triggering).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>clientOrderIds</span>); <span class="pl-c">// Query open conditional orders (before triggering).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query conditional order history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">orderHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query a specific conditional order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">specific</span>(<span class="pl-s1"><span class="pl-c1">$</span>clientOrderId</span>);</pre></div> </details> <details> <summary>8. Margin Loan(C2C)</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Place a lending/borrowing offer $app->c2c->order($params); // Cancel a lending/borrowing offer. $offerId = 14411; $app->c2c->cancelOrder($offerId); // Cancel all lending/borrowing offers. $app->c2c->cancelAll($params); // Query lending/borrow offers. $app->c2c->getOrders($params); // Query a lending/borrowing offer. $app->c2c->get($offerId); // Query lending/borrowing transactions. $app->c2c->transactions($params); // Repay a borrowing offer. $app->c2c->repayment($params); // Query C2C repayments. $app->c2c->getRepayment($params); // Transfer asset. $app->c2c->transfer($params); // Query C2C account balance. $app->c2c->balance($accountId, $currency = '');"><pre><span class="pl-c">// Place a lending/borrowing offer</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel a lending/borrowing offer.</span> <span class="pl-s1"><span class="pl-c1">$</span>offerId</span> = <span class="pl-c1">14411</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>offerId</span>); <span class="pl-c">// Cancel all lending/borrowing offers.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">cancelAll</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query lending/borrow offers.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">getOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query a lending/borrowing offer.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>offerId</span>); <span class="pl-c">// Query lending/borrowing transactions.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">transactions</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Repay a borrowing offer.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">repayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query C2C repayments.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">getRepayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer asset.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Query C2C account balance.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">c2c</span>-><span class="pl-en">balance</span>(<span class="pl-s1"><span class="pl-c1">$</span>accountId</span>, <span class="pl-s1"><span class="pl-c1">$</span>currency</span> = <span class="pl-s">''</span>);</pre></div> </details> <div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">OKX Version V5</h3><a id="user-content-okx-version-v5" class="anchor" aria-label="Permalink: OKX Version V5" href="#okx-version-v5"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <details> <summary><b> 🚀 Quick Start </b></summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="<?php use EasyExchange\Factory; $config = [ 'okex' => [ 'response_type' => 'array', 'base_uri' => 'https://www.okex.com', 'app_key' => 'your app key', 'secret' => 'your secret', 'passphrase' => 'your passphrase', 'x-simulated-trading' => 1, 'proxy' => [ 'http' => 'socks5h://127.0.0.1:1080', // Use this proxy with "http" 'https' => 'socks5h://127.0.0.1:1080', // Use this proxy with "https" 'no' => ['.mit.edu', 'foo.com'], // Don't use a proxy with these ], 'websocket' => [ 'base_uri' => [ [ 'url' => 'ws://ws.okex.com:8443/ws/v5/public', 'type' => 'public', ], [ 'url' => 'ws://ws.okex.com:8443/ws/v5/private', 'type' => 'private', ] ], 'listen_ip' => '127.0.0.1', // listen ip 'listen_port' => 2207, // listen port 'heartbeat_time' => 20, // Heartbeat detection time, seconds 'timer_time' => 3, // Scheduled task time,seconds 'max_size' => 100, // Data retention,1~1000,Data is stored by channel name 'data_time' => 1, // Time interval for getting data,seconds 'debug' => true, ], 'log' => [ 'level' => 'debug', 'file' => '/tmp/exchange.log', ], ], ]; $app = Factory::okex($config['okex']);"><pre><span class="pl-ent"><?php</span> <span class="pl-k">use</span> <span class="pl-v">EasyExchange</span>\<span class="pl-smi">Factory</span>; <span class="pl-s1"><span class="pl-c1">$</span>config</span> = [ <span class="pl-s">'<span class="pl-s">okex</span>'</span> => [ <span class="pl-s">'<span class="pl-s">response_type</span>'</span> => <span class="pl-s">'<span class="pl-s">array</span>'</span>, <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">https://www.okex.com</span>'</span>, <span class="pl-s">'<span class="pl-s">app_key</span>'</span> => <span class="pl-s">'<span class="pl-s">your app key</span>'</span>, <span class="pl-s">'<span class="pl-s">secret</span>'</span> => <span class="pl-s">'<span class="pl-s">your secret</span>'</span>, <span class="pl-s">'<span class="pl-s">passphrase</span>'</span> => <span class="pl-s">'<span class="pl-s">your passphrase</span>'</span>, <span class="pl-s">'<span class="pl-s">x-simulated-trading</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-s">'<span class="pl-s">proxy</span>'</span> => [ <span class="pl-s">'<span class="pl-s">http</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "http"</span> <span class="pl-s">'<span class="pl-s">https</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "https"</span> <span class="pl-s">'<span class="pl-s">no</span>'</span> => [<span class="pl-s">'<span class="pl-s">.mit.edu</span>'</span>, <span class="pl-s">'<span class="pl-s">foo.com</span>'</span>], <span class="pl-c">// Don't use a proxy with these</span> ], <span class="pl-s">'<span class="pl-s">websocket</span>'</span> => [ <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => [ [ <span class="pl-s">'<span class="pl-s">url</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://ws.okex.com:8443/ws/v5/public</span>'</span>, <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">public</span>'</span>, ], [ <span class="pl-s">'<span class="pl-s">url</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://ws.okex.com:8443/ws/v5/private</span>'</span>, <span class="pl-s">'<span class="pl-s">type</span>'</span> => <span class="pl-s">'<span class="pl-s">private</span>'</span>, ] ], <span class="pl-s">'<span class="pl-s">listen_ip</span>'</span> => <span class="pl-s">'<span class="pl-s">127.0.0.1</span>'</span>, <span class="pl-c">// listen ip</span> <span class="pl-s">'<span class="pl-s">listen_port</span>'</span> => <span class="pl-c1">2207</span>, <span class="pl-c">// listen port</span> <span class="pl-s">'<span class="pl-s">heartbeat_time</span>'</span> => <span class="pl-c1">20</span>, <span class="pl-c">// Heartbeat detection time, seconds</span> <span class="pl-s">'<span class="pl-s">timer_time</span>'</span> => <span class="pl-c1">3</span>, <span class="pl-c">// Scheduled task time,seconds</span> <span class="pl-s">'<span class="pl-s">max_size</span>'</span> => <span class="pl-c1">100</span>, <span class="pl-c">// Data retention,1~1000,Data is stored by channel name</span> <span class="pl-s">'<span class="pl-s">data_time</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-c">// Time interval for getting data,seconds</span> <span class="pl-s">'<span class="pl-s">debug</span>'</span> => <span class="pl-c1">true</span>, ], <span class="pl-s">'<span class="pl-s">log</span>'</span> => [ <span class="pl-s">'<span class="pl-s">level</span>'</span> => <span class="pl-s">'<span class="pl-s">debug</span>'</span>, <span class="pl-s">'<span class="pl-s">file</span>'</span> => <span class="pl-s">'<span class="pl-s">/tmp/exchange.log</span>'</span>, ], ], ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span> = Factory::<span class="pl-en">okex</span>(<span class="pl-s1"><span class="pl-c1">$</span>config</span>[<span class="pl-s">'<span class="pl-s">okex</span>'</span>]);</pre></div> </details> <details> <summary>1. Basic Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="$params = [ 'instType' => 'SPOT', ]; // Get Instruments $app->basic->exchangeInfo($params); // Get Delivery/Exercise History $app->basic->deliveryExerciseHistory($params); // Get Open Interest $app->basic->openInterest($params); // Get Funding Rate $app->basic->fundingRate($instId); // Get Funding Rate History $app->basic->fundingRateHistory($params); // Get Limit Price $app->basic->priceLimit($instId); // Get Option Market Data $app->basic->optSummary($uly, $expTime = ''); // Get Estimated Delivery/Excercise Price $app->basic->estimatedPrice($instId); // Get Discount Rate And Interest-Free Quota $app->basic->discountRateInterestFreeQuota($ccy = ''); // Get System Time $app->basic->systemTime(); // Get Liquidation Orders $app->basic->liquidationOrders($params); // Get Mark Price $app->basic->markPrice($params);"><pre><span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">instType</span>'</span> => <span class="pl-s">'<span class="pl-s">SPOT</span>'</span>, ]; <span class="pl-c">// Get Instruments</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">exchangeInfo</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Delivery/Exercise History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">deliveryExerciseHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Open Interest</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">openInterest</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Funding Rate</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">fundingRate</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>); <span class="pl-c">// Get Funding Rate History</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">fundingRateHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Limit Price</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">priceLimit</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>); <span class="pl-c">// Get Option Market Data</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">optSummary</span>(<span class="pl-s1"><span class="pl-c1">$</span>uly</span>, <span class="pl-s1"><span class="pl-c1">$</span>expTime</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get Estimated Delivery/Excercise Price</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">estimatedPrice</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>); <span class="pl-c">// Get Discount Rate And Interest-Free Quota</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">discountRateInterestFreeQuota</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get System Time</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">systemTime</span>(); <span class="pl-c">// Get Liquidation Orders</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">liquidationOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Mark Price</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">basic</span>-><span class="pl-en">markPrice</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>2. Account Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Balance $app->user->balance($ccy = ''); // Get Positions $app->user->positions($params); // Get Bills Details (last 7 days) $app->user->bills($params); // Get Bills Details (last 3 months) $app->user->billsArchive($params); // Get Account Configuration $app->user->config(); // Set Position mode $app->user->setPositionMode($posMode); // Set Leverage $app->user->setLeverage($params); // Get maximum buy/sell amount or open amount $app->user->maxSize($params); // Get Maximum Available Tradable Amount $app->user->maxAvailSize($params); // Increase/Decrease margin $app->user->marginBalance($params); // Get Leverage $app->user->leverageInfo($instId, $mgnMode); // Get the maximum loan of instrument $app->user->maxLoan($params); // Get Fee Rates $app->user->tradeFee($params); // Get interest-accrued $app->user->interestAccrued($params); // Set Greeks (PA/BS) $app->user->setGreeks($greeksType); // Get Maximum Withdrawals $app->user->maxWithdrawal($ccy = '');"><pre><span class="pl-c">// Get Balance</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">balance</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get Positions</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">positions</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Bills Details (last 7 days)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">bills</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Bills Details (last 3 months)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">billsArchive</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Account Configuration</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">config</span>(); <span class="pl-c">// Set Position mode</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">setPositionMode</span>(<span class="pl-s1"><span class="pl-c1">$</span>posMode</span>); <span class="pl-c">// Set Leverage</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">setLeverage</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get maximum buy/sell amount or open amount</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">maxSize</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Maximum Available Tradable Amount</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">maxAvailSize</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Increase/Decrease margin</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">marginBalance</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Leverage</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">leverageInfo</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>, <span class="pl-s1"><span class="pl-c1">$</span>mgnMode</span>); <span class="pl-c">// Get the maximum loan of instrument</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">maxLoan</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Fee Rates</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">tradeFee</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get interest-accrued</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">interestAccrued</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Set Greeks (PA/BS)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">setGreeks</span>(<span class="pl-s1"><span class="pl-c1">$</span>greeksType</span>); <span class="pl-c">// Get Maximum Withdrawals</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">maxWithdrawal</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span> = <span class="pl-s">''</span>);</pre></div> </details> <details> <summary>3. Market Data</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Tickers - Retrieve the latest price snapshot, best bid/ask price, and trading volume in the last 24 hours $app->market->tickers($instType, $uly = ''); // Get Ticker $app->market->ticker($instId); // Get Index Tickers $app->market->indexTickers($quoteCcy = '', $instId = ''); // Get Order Book $instId = 'BTC-USD-SWAP'; $sz = 1; $app->market->depth($instId, $sz); // Get Candlesticks $app->market->kline($params); // Get Candlesticks History(top currencies only) $app->market->klineHistory($params); // Get Index Candlesticks $app->market->indexKline($params); // Get Mark Price Candlesticks $app->market->markPriceKline($params); // Get Trades $app->market->trades($instId, $limit = 100); // Get exchange rate - This interface provides the average exchange rate data for 2 weeks $app->market->exchangeRate(); // Get index components - Get the index component information data on the market $index = 'BTC-USDT'; $response = $app->market->indexComponents($index);"><pre><span class="pl-c">// Get Tickers - Retrieve the latest price snapshot, best bid/ask price, and trading volume in the last 24 hours</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">tickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>instType</span>, <span class="pl-s1"><span class="pl-c1">$</span>uly</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get Ticker</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">ticker</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>); <span class="pl-c">// Get Index Tickers</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">indexTickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>quoteCcy</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>instId</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get Order Book</span> <span class="pl-s1"><span class="pl-c1">$</span>instId</span> = <span class="pl-s">'<span class="pl-s">BTC-USD-SWAP</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>sz</span> = <span class="pl-c1">1</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>, <span class="pl-s1"><span class="pl-c1">$</span>sz</span>); <span class="pl-c">// Get Candlesticks</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Candlesticks History(top currencies only)</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">klineHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Index Candlesticks</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">indexKline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Mark Price Candlesticks</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">markPriceKline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Trades</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>instId</span>, <span class="pl-s1"><span class="pl-c1">$</span>limit</span> = <span class="pl-c1">100</span>); <span class="pl-c">// Get exchange rate - This interface provides the average exchange rate data for 2 weeks</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">exchangeRate</span>(); <span class="pl-c">// Get index components - Get the index component information data on the market</span> <span class="pl-s1"><span class="pl-c1">$</span>index</span> = <span class="pl-s">'<span class="pl-s">BTC-USDT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">indexComponents</span>(<span class="pl-s1"><span class="pl-c1">$</span>index</span>);</pre></div> </details> <details> <summary>4. Funding</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Deposit Address $app->wallet->depositAddress($ccy); // Get Balance. $app->wallet->balance($ccy = ''); // Funds Transfer. $app->wallet->transfer($params); // Withdrawal. $app->wallet->withdrawal($params); // Get Deposit History. $app->wallet->depositHistory($params = []); // Get Withdrawal History. $app->wallet->withdrawalHistory($params = []); // Get Currencies. $app->wallet->currencies(); // PiggyBank Purchase/Redemption. $app->wallet->purchaseRedempt($params); // Asset Bills Details. $app->wallet->bills($params);"><pre><span class="pl-c">// Get Deposit Address</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span>); <span class="pl-c">// Get Balance.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">balance</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span> = <span class="pl-s">''</span>); <span class="pl-c">// Funds Transfer.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Withdrawal.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawal</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Deposit History.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// Get Withdrawal History.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawalHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// Get Currencies.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">currencies</span>(); <span class="pl-c">// PiggyBank Purchase/Redemption.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">purchaseRedempt</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Asset Bills Details.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">bills</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>5. Trade</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="$params = [ 'instId' => 'BTC-USD-190927-5000-C', 'tdMode' => 'cash', 'side' => 'buy', 'ordType' => 'limit', // limit 'sz' => '0.0001', // Quantity to buy or sell 'px' => '1000', // Order price. Only applicable to limit order ]; // Place Order $app->trade->order($params); // Place Multiple Orders. $app->trade->batchOrders($params); // Cancel Order. $app->trade->cancelOrder($params); // Cancel Multiple Orders. $app->trade->cancelBatchOrders($params); // Amend Order - Amend an incomplete order. $app->trade->amendOrder($params); // Amend Multiple Orders. $app->trade->amendBatchOrders($params); // Close Positions. $app->trade->closePosition($params); $params = [ 'instId' => 'BTC-USD-190927-5000-C', 'ordId' => '2510789768709120', ]; // Get Order Details $app->trade->get($params); // Get Order List. $app->trade->openOrders($params); // Get Order History (last 7 days). $app->trade->orderHistory($params); // Get Order History (last 3 months). $app->trade->orderHistoryArchive($params); // Get Transaction Details. $app->trade->fills($params);"><pre><span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">instId</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC-USD-190927-5000-C</span>'</span>, <span class="pl-s">'<span class="pl-s">tdMode</span>'</span> => <span class="pl-s">'<span class="pl-s">cash</span>'</span>, <span class="pl-s">'<span class="pl-s">side</span>'</span> => <span class="pl-s">'<span class="pl-s">buy</span>'</span>, <span class="pl-s">'<span class="pl-s">ordType</span>'</span> => <span class="pl-s">'<span class="pl-s">limit</span>'</span>, <span class="pl-c">// limit</span> <span class="pl-s">'<span class="pl-s">sz</span>'</span> => <span class="pl-s">'<span class="pl-s">0.0001</span>'</span>, <span class="pl-c">// Quantity to buy or sell</span> <span class="pl-s">'<span class="pl-s">px</span>'</span> => <span class="pl-s">'<span class="pl-s">1000</span>'</span>, <span class="pl-c">// Order price. Only applicable to limit order</span> ]; <span class="pl-c">// Place Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Place Multiple Orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">batchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel Order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel Multiple Orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelBatchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Amend Order - Amend an incomplete order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">amendOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Amend Multiple Orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">amendBatchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Close Positions.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">closePosition</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">instId</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC-USD-190927-5000-C</span>'</span>, <span class="pl-s">'<span class="pl-s">ordId</span>'</span> => <span class="pl-s">'<span class="pl-s">2510789768709120</span>'</span>, ]; <span class="pl-c">// Get Order Details</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Order List.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Order History (last 7 days).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">orderHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Order History (last 3 months).</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">orderHistoryArchive</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Transaction Details.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">fills</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>6. Conditional Order(Algo Order)</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Place Algo Order $app->algo->order($params); // Cancel Algo Order. $app->algo->cancelOrder($params); // Get Algo Order List. $app->algo->openOrders($params); // Get Algo Order History. $app->algo->orderHistory($params);"><pre><span class="pl-c">// Place Algo Order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel Algo Order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Algo Order List.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Algo Order History.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">algo</span>-><span class="pl-en">orderHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>7. Trading data</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get support coin - Retrieve the currencies supported by the trading data endpoints. $response = $app->trading->supportCoin(); // Get taker volume - Retrieve the taker volume for both buyers and sellers. $params = [ 'ccy' => 'BTC', 'instType' => 'SPOT', ]; $response = $app->trading->takerVolume($params); // Get margin lending ratio - Retrieve the ratio of cumulative amount between currency margin quote currency and base currency. $params = [ 'ccy' => 'BTC', ]; $response = $app->trading->loadRatio($params); // Get long/short ratio - Retrieve the ratio of users with net long vs net short positions for futures and perpetual swaps. $params = [ 'ccy' => 'BTC', ]; $response = $app->trading->contractLongShortAccountRatio($params); // Get contracts open interest and volume - Retrieve the open interest and trading volume for futures and perpetual swaps. $params = [ 'ccy' => 'BTC', ]; $response = $app->trading->contractOpenInterestVolume($params); // Get options open interest and volume - Retrieve the open interest and trading volume for options. $response = $app->trading->optionOpenInterestVolume($params); // Get put/call ratio - Retrieve the open interest ration and trading volume ratio of calls vs puts. $ccy = 'BTC'; $response = $app->trading->optionOpenInterestVolumeRatio($ccy); // Get open interest and volume (expiry) - Retrieve the open interest and trading volume of calls and puts for each upcoming expiration. $response = $app->trading->optionOpenInterestVolumeExpiry($ccy); // Get open interest and volume (strike) - Retrieve the taker volume for both buyers and sellers of calls and puts. $exptime = '20220122'; $response = $app->trading->optionOpenInterestVolumeStrike($ccy, $exptime); // Get taker flow - This shows the relative buy/sell volume for calls and puts. It shows whether traders are bullish or bearish on price and volatility. $response = $app->trading->optionTakerBlockVolume($ccy);"><pre><span class="pl-c">// Get support coin - Retrieve the currencies supported by the trading data endpoints.</span> <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">supportCoin</span>(); <span class="pl-c">// Get taker volume - Retrieve the taker volume for both buyers and sellers.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">ccy</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC</span>'</span>, <span class="pl-s">'<span class="pl-s">instType</span>'</span> => <span class="pl-s">'<span class="pl-s">SPOT</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">takerVolume</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get margin lending ratio - Retrieve the ratio of cumulative amount between currency margin quote currency and base currency.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">ccy</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">loadRatio</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get long/short ratio - Retrieve the ratio of users with net long vs net short positions for futures and perpetual swaps.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">ccy</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">contractLongShortAccountRatio</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get contracts open interest and volume - Retrieve the open interest and trading volume for futures and perpetual swaps.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">ccy</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">contractOpenInterestVolume</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get options open interest and volume - Retrieve the open interest and trading volume for options.</span> <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">optionOpenInterestVolume</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get put/call ratio - Retrieve the open interest ration and trading volume ratio of calls vs puts.</span> <span class="pl-s1"><span class="pl-c1">$</span>ccy</span> = <span class="pl-s">'<span class="pl-s">BTC</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">optionOpenInterestVolumeRatio</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span>); <span class="pl-c">// Get open interest and volume (expiry) - Retrieve the open interest and trading volume of calls and puts for each upcoming expiration.</span> <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">optionOpenInterestVolumeExpiry</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span>); <span class="pl-c">// Get open interest and volume (strike) - Retrieve the taker volume for both buyers and sellers of calls and puts.</span> <span class="pl-s1"><span class="pl-c1">$</span>exptime</span> = <span class="pl-s">'<span class="pl-s">20220122</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">optionOpenInterestVolumeStrike</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span>, <span class="pl-s1"><span class="pl-c1">$</span>exptime</span>); <span class="pl-c">// Get taker flow - This shows the relative buy/sell volume for calls and puts. It shows whether traders are bullish or bearish on price and volatility.</span> <span class="pl-s1"><span class="pl-c1">$</span>response</span> = <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trading</span>-><span class="pl-en">optionTakerBlockVolume</span>(<span class="pl-s1"><span class="pl-c1">$</span>ccy</span>);</pre></div> </details> <div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Gate Version V4</h3><a id="user-content-gate-version-v4" class="anchor" aria-label="Permalink: Gate Version V4" href="#gate-version-v4"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <details> <summary><b> 🚀 Quick Start </b></summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="<?php use EasyExchange\Factory; $config = [ 'gate' => [ 'response_type' => 'array', 'base_uri' => 'https://api.gateio.ws', 'app_key' => 'your app key', 'secret' => 'your secret', 'proxy' => [ 'http' => 'socks5h://127.0.0.1:1080', // Use this proxy with "http" 'https' => 'socks5h://127.0.0.1:1080', // Use this proxy with "https" 'no' => ['.mit.edu', 'foo.com'], // Don't use a proxy with these ], 'websocket' => [ 'base_uri' => 'ws://api.gateio.ws', 'listen_ip' => '127.0.0.1', // listen ip 'listen_port' => 2207, // listen port 'heartbeat_time' => 20, // Heartbeat detection time, seconds 'timer_time' => 3, // Scheduled task time,seconds 'max_size' => 100, // Data retention,1~1000,Data is stored by channel name 'data_time' => 1, // Time interval for getting data,seconds 'debug' => true, ], 'log' => [ 'level' => 'debug', 'file' => '/tmp/exchange.log', ], ], ]; $app = Factory::gate($config['gate']);"><pre><span class="pl-ent"><?php</span> <span class="pl-k">use</span> <span class="pl-v">EasyExchange</span>\<span class="pl-smi">Factory</span>; <span class="pl-s1"><span class="pl-c1">$</span>config</span> = [ <span class="pl-s">'<span class="pl-s">gate</span>'</span> => [ <span class="pl-s">'<span class="pl-s">response_type</span>'</span> => <span class="pl-s">'<span class="pl-s">array</span>'</span>, <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">https://api.gateio.ws</span>'</span>, <span class="pl-s">'<span class="pl-s">app_key</span>'</span> => <span class="pl-s">'<span class="pl-s">your app key</span>'</span>, <span class="pl-s">'<span class="pl-s">secret</span>'</span> => <span class="pl-s">'<span class="pl-s">your secret</span>'</span>, <span class="pl-s">'<span class="pl-s">proxy</span>'</span> => [ <span class="pl-s">'<span class="pl-s">http</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "http"</span> <span class="pl-s">'<span class="pl-s">https</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "https"</span> <span class="pl-s">'<span class="pl-s">no</span>'</span> => [<span class="pl-s">'<span class="pl-s">.mit.edu</span>'</span>, <span class="pl-s">'<span class="pl-s">foo.com</span>'</span>], <span class="pl-c">// Don't use a proxy with these</span> ], <span class="pl-s">'<span class="pl-s">websocket</span>'</span> => [ <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://api.gateio.ws</span>'</span>, <span class="pl-s">'<span class="pl-s">listen_ip</span>'</span> => <span class="pl-s">'<span class="pl-s">127.0.0.1</span>'</span>, <span class="pl-c">// listen ip</span> <span class="pl-s">'<span class="pl-s">listen_port</span>'</span> => <span class="pl-c1">2207</span>, <span class="pl-c">// listen port</span> <span class="pl-s">'<span class="pl-s">heartbeat_time</span>'</span> => <span class="pl-c1">20</span>, <span class="pl-c">// Heartbeat detection time, seconds</span> <span class="pl-s">'<span class="pl-s">timer_time</span>'</span> => <span class="pl-c1">3</span>, <span class="pl-c">// Scheduled task time,seconds</span> <span class="pl-s">'<span class="pl-s">max_size</span>'</span> => <span class="pl-c1">100</span>, <span class="pl-c">// Data retention,1~1000,Data is stored by channel name</span> <span class="pl-s">'<span class="pl-s">data_time</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-c">// Time interval for getting data,seconds</span> <span class="pl-s">'<span class="pl-s">debug</span>'</span> => <span class="pl-c1">true</span>, ], <span class="pl-s">'<span class="pl-s">log</span>'</span> => [ <span class="pl-s">'<span class="pl-s">level</span>'</span> => <span class="pl-s">'<span class="pl-s">debug</span>'</span>, <span class="pl-s">'<span class="pl-s">file</span>'</span> => <span class="pl-s">'<span class="pl-s">/tmp/exchange.log</span>'</span>, ], ], ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span> = Factory::<span class="pl-en">gate</span>(<span class="pl-s1"><span class="pl-c1">$</span>config</span>[<span class="pl-s">'<span class="pl-s">gate</span>'</span>]);</pre></div> </details> <details> <summary>1. Wallet</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Generate currency deposit address. $currency = 'USDT'; $app->wallet->depositAddress($currency); // Retrieve withdrawal records. $params = []; $app->wallet->withdrawHistory($params); // Retrieve deposit records. $app->wallet->depositHistory($params); // Transfer between trading accounts. $app->wallet->transfer($params); // Transfer between main and sub accounts. $app->wallet->subAccountTransfer($params); // Transfer records between main and sub accounts. $app->wallet->subAccountTransferHistory($params); // Retrieve withdrawal status. $app->wallet->withdrawStatus($currency); // Retrieve sub account balances. $app->wallet->subAccountBalance($sub_uid = ''); // Retrieve personal trading fee. $app->wallet->fee();"><pre><span class="pl-c">// Generate currency deposit address.</span> <span class="pl-s1"><span class="pl-c1">$</span>currency</span> = <span class="pl-s">'<span class="pl-s">USDT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Retrieve withdrawal records.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Retrieve deposit records.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer between trading accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer between main and sub accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">subAccountTransfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Transfer records between main and sub accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">subAccountTransferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Retrieve withdrawal status.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawStatus</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Retrieve sub account balances.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">subAccountBalance</span>(<span class="pl-s1"><span class="pl-c1">$</span>sub_uid</span> = <span class="pl-s">''</span>); <span class="pl-c">// Retrieve personal trading fee.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">fee</span>();</pre></div> </details> <details> <summary>2. Spot Trade</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// List all currencies' detail. $app->spot->currencies(); // Get detail of one particular currency. $currency = 'GT'; $app->spot->currency($currency); // List all currency pairs supported. $app->spot->currencyPairs(); // Get detail of one single order. $currency_pair = 'ETH_USDT'; $app->spot->currencyPair($currency_pair); // Retrieve ticker information. $app->spot->tickers($currency_pair); // Retrieve order book. $params = [ 'currency_pair' => 'ETH_USDT', ]; $app->spot->depth($params); // Retrieve market trades. $app->spot->trades($params); // Market candlesticks. $app->spot->kline($params); // List spot accounts. $app->spot->accounts($currency); // Create an order. $params = [ 'currency_pair' => 'ETH_USDT', 'side' => 'buy', 'amount' => '0.1', 'price' => '10', ]; $app->spot->order($params); // Create a batch of orders. $app->spot->batchOrders($params); // List all open orders. $app->spot->openOrders($page = '', $limit = ''); // List orders. $app->spot->orders($params); // Cancel all open orders in specified currency pair. $app->spot->cancelOrders($params); // Cancel a batch of orders with an ID list. $app->spot->cancelBatchOrders($params); // Get a single order $app->spot->get($order_id, $currency_pair); // Cancel a single order. $app->spot->cancelOrder($order_id, $currency_pair); // List personal trading history. $app->spot->myTrades($params); // Create a price-triggered order. $app->spot->priceOrder($params); // Retrieve running auto order list. $app->spot->priceOrders($params); // Cancel all open orders. $app->spot->cancelPriceOrders($market = '', $account = ''); // Get a single order. $app->spot->getPriceOrder($order_id); // Cancel a single order. $app->spot->cancelPriceOrder($order_id);"><pre><span class="pl-c">// List all currencies' detail.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">currencies</span>(); <span class="pl-c">// Get detail of one particular currency.</span> <span class="pl-s1"><span class="pl-c1">$</span>currency</span> = <span class="pl-s">'<span class="pl-s">GT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">currency</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// List all currency pairs supported.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">currencyPairs</span>(); <span class="pl-c">// Get detail of one single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span> = <span class="pl-s">'<span class="pl-s">ETH_USDT</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">currencyPair</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span>); <span class="pl-c">// Retrieve ticker information.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">tickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span>); <span class="pl-c">// Retrieve order book.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">currency_pair</span>'</span> => <span class="pl-s">'<span class="pl-s">ETH_USDT</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Retrieve market trades.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Market candlesticks.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List spot accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">accounts</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Create an order.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">currency_pair</span>'</span> => <span class="pl-s">'<span class="pl-s">ETH_USDT</span>'</span>, <span class="pl-s">'<span class="pl-s">side</span>'</span> => <span class="pl-s">'<span class="pl-s">buy</span>'</span>, <span class="pl-s">'<span class="pl-s">amount</span>'</span> => <span class="pl-s">'<span class="pl-s">0.1</span>'</span>, <span class="pl-s">'<span class="pl-s">price</span>'</span> => <span class="pl-s">'<span class="pl-s">10</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Create a batch of orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">batchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List all open orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">openOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>page</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>limit</span> = <span class="pl-s">''</span>); <span class="pl-c">// List orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">orders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders in specified currency pair.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel a batch of orders with an ID list.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelBatchOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get a single order</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span>); <span class="pl-c">// List personal trading history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">myTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Create a price-triggered order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">priceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Retrieve running auto order list.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">priceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelPriceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>market</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>account</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">getPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">spot</span>-><span class="pl-en">cancelPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>order_id</span>);</pre></div> </details> <details> <summary>3. Margin</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// List all supported currency pairs supported in margin trading. $app->margin->currencyPairs(); // Query one single margin currency pair. $app->margin->currencyPair($currency_pair); // Order book of lending loans. $app->margin->depth($currency); // Margin account list. $app->margin->accounts($currency_pair = ''); // List margin account balance change history. $app->margin->accountHistory($params); // Funding account list. $app->margin->fundingAccounts($currency = ''); // Lend or borrow. $app->margin->loan($params); // List all loans. $app->margin->loanHistory($params); // Merge multiple lending loans. $app->margin->mergeLoan($currency, $ids); // Retrieve one single loan detail. $app->margin->get($loan_id, $side); // Modify a loan. $app->margin->modifyLoan($loan_id, $params); // Cancel lending loan. $app->margin->cancelLoan($loan_id, $currency); // Repay a loan. $app->margin->repayment($loan_id, $params); // List loan repayment records. $app->margin->getRepayment($loan_id); // List repayment records of specified loan. $app->margin->loanRecords($params); // Get one single loan record. $app->margin->loanRecord($loan_id, $loan_record_id); // Modify a loan record. $app->margin->modifyLoanRecord($loan_record_id, $params); // Update user's auto repayment setting. $app->margin->autoRepay($status); // Retrieve user auto repayment setting. $app->margin->getAutoRepayStatus();"><pre><span class="pl-c">// List all supported currency pairs supported in margin trading.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">currencyPairs</span>(); <span class="pl-c">// Query one single margin currency pair.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">currencyPair</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span>); <span class="pl-c">// Order book of lending loans.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Margin account list.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">accounts</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency_pair</span> = <span class="pl-s">''</span>); <span class="pl-c">// List margin account balance change history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">accountHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Funding account list.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">fundingAccounts</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span> = <span class="pl-s">''</span>); <span class="pl-c">// Lend or borrow.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loan</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List all loans.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Merge multiple lending loans.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">mergeLoan</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>, <span class="pl-s1"><span class="pl-c1">$</span>ids</span>); <span class="pl-c">// Retrieve one single loan detail.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>side</span>); <span class="pl-c">// Modify a loan.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">modifyLoan</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel lending loan.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">cancelLoan</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Repay a loan.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">repayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List loan repayment records.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">getRepayment</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>); <span class="pl-c">// List repayment records of specified loan.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanRecords</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get one single loan record.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">loanRecord</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>loan_record_id</span>); <span class="pl-c">// Modify a loan record.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">modifyLoanRecord</span>(<span class="pl-s1"><span class="pl-c1">$</span>loan_record_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Update user's auto repayment setting.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">autoRepay</span>(<span class="pl-s1"><span class="pl-c1">$</span>status</span>); <span class="pl-c">// Retrieve user auto repayment setting.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">getAutoRepayStatus</span>();</pre></div> </details> <details> <summary>4. Future</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// List all futures contracts. $app->future->contracts($settle); // Get a single contract. $app->future->contract($settle, $contract); // Futures order book. $app->future->depth($settle, $params); // Futures trading history. $app->future->trades($settle, $params); // Get futures candlesticks. $app->future->kline($settle, $params); // List futures tickers. $app->future->tickers($settle, $contract); // Funding rate history. $app->future->fundingRateHistory($settle, $params); // Futures insurance balance history. $app->future->insuranceHistory($settle, $limit = ''); // Futures stats. $app->future->contractStats($settle, $params); // Retrieve liquidation history. $app->future->liquidationOrders($settle, $params = []); // Query futures account. $app->future->accounts($settle); // Query account book. $app->future->accountHistory($settle, $params = []); // List all positions of a user. $app->future->positions($settle); // Get single position. $app->future->position($settle, $contract); // Update position margin. $app->future->modifyPositionMargin($settle, $contract, $change); // Update position leverage. $app->future->modifyPositionLeverage($settle, $contract, $leverage); // Update position risk limit. $app->future->modifyPositionRiskLimit($settle, $contract, $risk_limit); // Enable or disable dual mode. $app->future->setDualMode($settle, $dual_mode); // Retrieve position detail in dual mode. $app->future->dualCompPosition($settle, $contract); // Update position margin in dual mode. $app->future->modifyDualCompPositionMargin($settle, $contract, $change); // Update position leverage in dual mode. $app->future->modifyDualCompPositionLeverage($settle, $contract, $leverage); // Update position risk limit in dual mode. $app->future->modifyDualCompPositionRiskLimit($settle, $contract, $risk_limit); // Create a futures order. $app->future->order($settle, $params); // List futures orders. $app->future->orders($settle, $params); // Cancel all open orders matched. $app->future->cancelOrders($settle, $params); // Cancel a single order. $app->future->cancelOrder($settle, $order_id); // Get a single order. $app->future->get($settle, $order_id); // List personal trading history. $app->future->myTrades($settle, $params); // List position close history. $app->future->positionClose($settle, $params); // List liquidation history. $app->future->forceLiquidationRec($settle, $params); // Create a price-triggered order. $app->future->priceOrder($settle, $params); // List all auto orders. $app->future->priceOrders($settle, $params); // Cancel all open orders. $app->future->cancelPriceOrders($settle, $contract); // Get a single order. $app->future->getPriceOrder($settle, $order_id); // Cancel a single order. $app->future->cancelPriceOrder($settle, $order_id);"><pre><span class="pl-c">// List all futures contracts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">contracts</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Get a single contract.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">contract</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Futures order book.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Futures trading history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get futures candlesticks.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List futures tickers.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">tickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Funding rate history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">fundingRateHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Futures insurance balance history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">insuranceHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>limit</span> = <span class="pl-s">''</span>); <span class="pl-c">// Futures stats.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">contractStats</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Retrieve liquidation history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">liquidationOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// Query futures account.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">accounts</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Query account book.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">accountHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// List all positions of a user.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">positions</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Get single position.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">position</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Update position margin.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyPositionMargin</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>change</span>); <span class="pl-c">// Update position leverage.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyPositionLeverage</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>leverage</span>); <span class="pl-c">// Update position risk limit.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyPositionRiskLimit</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>risk_limit</span>); <span class="pl-c">// Enable or disable dual mode.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">setDualMode</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>dual_mode</span>); <span class="pl-c">// Retrieve position detail in dual mode.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">dualCompPosition</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Update position margin in dual mode.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyDualCompPositionMargin</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>change</span>); <span class="pl-c">// Update position leverage in dual mode.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyDualCompPositionLeverage</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>leverage</span>); <span class="pl-c">// Update position risk limit in dual mode.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">modifyDualCompPositionRiskLimit</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>risk_limit</span>); <span class="pl-c">// Create a futures order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List futures orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">orders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders matched.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Get a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// List personal trading history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">myTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List position close history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">positionClose</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List liquidation history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">forceLiquidationRec</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Create a price-triggered order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">priceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List all auto orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">priceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">cancelPriceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Get a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">getPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">future</span>-><span class="pl-en">cancelPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>);</pre></div> </details> <details> <summary>5. Delivery</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// List all futures contracts. $app->delivery->contracts($settle); // Get a single contract. $app->delivery->contract($settle, $contract); // Futures order book. $app->delivery->depth($settle, $params); // Futures trading history. $app->delivery->trades($settle, $params); // Get futures candlesticks. $app->delivery->kline($settle, $params); // List futures tickers. $app->delivery->tickers($settle, $contract); // Futures insurance balance history. $app->delivery->insuranceHistory($settle, $limit = ''); // Query futures account. $app->delivery->accounts($settle); // Query account book. $app->delivery->accountHistory($settle, $params = []); // List all positions of a user. $app->delivery->positions($settle); // Get single position. $app->delivery->position($settle, $contract); // Update position margin. $app->delivery->modifyPositionMargin($settle, $contract, $change); // Update position leverage. $app->delivery->modifyPositionLeverage($settle, $contract, $leverage); // Update position risk limit. $app->delivery->modifyPositionRiskLimit($settle, $contract, $risk_limit); // Create a futures order. $app->delivery->order($settle, $params); // List futures orders. $app->delivery->orders($settle, $params); // Cancel all open orders matched. $app->delivery->cancelOrders($settle, $params); // Cancel a single order. $app->delivery->cancelOrder($settle, $order_id); // Get a single order. $app->delivery->get($settle, $order_id); // List personal trading history. $app->delivery->myTrades($settle, $params); // List position close history. $app->delivery->positionClose($settle, $params); // List liquidation history. $app->delivery->forceLiquidationRec($settle, $params); // List settlement history. $app->delivery->settlements($settle, $params = []); // Create a price-triggered order. $app->delivery->priceOrder($settle, $params); // List all auto orders. $app->delivery->priceOrders($settle, $params); // Cancel all open orders. $app->delivery->cancelPriceOrders($settle, $contract); // Get a single order. $app->delivery->getPriceOrder($settle, $order_id); // Cancel a single order. $app->delivery->cancelPriceOrder($settle, $order_id);"><pre><span class="pl-c">// List all futures contracts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">contracts</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Get a single contract.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">contract</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Futures order book.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Futures trading history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get futures candlesticks.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List futures tickers.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">tickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Futures insurance balance history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">insuranceHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>limit</span> = <span class="pl-s">''</span>); <span class="pl-c">// Query futures account.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">accounts</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Query account book.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">accountHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// List all positions of a user.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">positions</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>); <span class="pl-c">// Get single position.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">position</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Update position margin.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">modifyPositionMargin</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>change</span>); <span class="pl-c">// Update position leverage.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">modifyPositionLeverage</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>leverage</span>); <span class="pl-c">// Update position risk limit.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">modifyPositionRiskLimit</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>, <span class="pl-s1"><span class="pl-c1">$</span>risk_limit</span>); <span class="pl-c">// Create a futures order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List futures orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">orders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders matched.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Get a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// List personal trading history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">myTrades</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List position close history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">positionClose</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List liquidation history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">forceLiquidationRec</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List settlement history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">settlements</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// Create a price-triggered order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">priceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List all auto orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">priceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel all open orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">cancelPriceOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>contract</span>); <span class="pl-c">// Get a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">getPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>); <span class="pl-c">// Cancel a single order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">delivery</span>-><span class="pl-en">cancelPriceOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>settle</span>, <span class="pl-s1"><span class="pl-c1">$</span>order_id</span>);</pre></div> </details> <div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Coinbase</h3><a id="user-content-coinbase" class="anchor" aria-label="Permalink: Coinbase" href="#coinbase"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <details> <summary><b> 🚀 Quick Start </b></summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="<?php use EasyExchange\Factory; $config = [ 'coinbase' => [ 'response_type' => 'array', 'base_uri' => 'https://api.pro.coinbase.com', 'app_key' => 'your app key', 'secret' => 'your secret', 'passphrase' => 'your passphrase', 'proxy' => [ 'http' => 'socks5h://127.0.0.1:1080', // Use this proxy with "http" 'https' => 'socks5h://127.0.0.1:1080', // Use this proxy with "https" 'no' => ['.mit.edu', 'foo.com'], // Don't use a proxy with these ], 'websocket' => [ 'base_uri' => 'ws://ws-feed.pro.coinbase.com', 'listen_ip' => '127.0.0.1', // listen ip 'listen_port' => 2207, // listen port 'heartbeat_time' => 20, // Heartbeat detection time, seconds 'timer_time' => 3, // Scheduled task time,seconds 'max_size' => 100, // Data retention,1~1000,Data is stored by channel name 'data_time' => 1, // Time interval for getting data,seconds 'debug' => true, ], 'log' => [ 'level' => 'debug', 'file' => '/tmp/exchange.log', ], ], ]; $app = Factory::coinbase($config['coinbase']);"><pre><span class="pl-ent"><?php</span> <span class="pl-k">use</span> <span class="pl-v">EasyExchange</span>\<span class="pl-smi">Factory</span>; <span class="pl-s1"><span class="pl-c1">$</span>config</span> = [ <span class="pl-s">'<span class="pl-s">coinbase</span>'</span> => [ <span class="pl-s">'<span class="pl-s">response_type</span>'</span> => <span class="pl-s">'<span class="pl-s">array</span>'</span>, <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">https://api.pro.coinbase.com</span>'</span>, <span class="pl-s">'<span class="pl-s">app_key</span>'</span> => <span class="pl-s">'<span class="pl-s">your app key</span>'</span>, <span class="pl-s">'<span class="pl-s">secret</span>'</span> => <span class="pl-s">'<span class="pl-s">your secret</span>'</span>, <span class="pl-s">'<span class="pl-s">passphrase</span>'</span> => <span class="pl-s">'<span class="pl-s">your passphrase</span>'</span>, <span class="pl-s">'<span class="pl-s">proxy</span>'</span> => [ <span class="pl-s">'<span class="pl-s">http</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "http"</span> <span class="pl-s">'<span class="pl-s">https</span>'</span> => <span class="pl-s">'<span class="pl-s">socks5h://127.0.0.1:1080</span>'</span>, <span class="pl-c">// Use this proxy with "https"</span> <span class="pl-s">'<span class="pl-s">no</span>'</span> => [<span class="pl-s">'<span class="pl-s">.mit.edu</span>'</span>, <span class="pl-s">'<span class="pl-s">foo.com</span>'</span>], <span class="pl-c">// Don't use a proxy with these</span> ], <span class="pl-s">'<span class="pl-s">websocket</span>'</span> => [ <span class="pl-s">'<span class="pl-s">base_uri</span>'</span> => <span class="pl-s">'<span class="pl-s">ws://ws-feed.pro.coinbase.com</span>'</span>, <span class="pl-s">'<span class="pl-s">listen_ip</span>'</span> => <span class="pl-s">'<span class="pl-s">127.0.0.1</span>'</span>, <span class="pl-c">// listen ip</span> <span class="pl-s">'<span class="pl-s">listen_port</span>'</span> => <span class="pl-c1">2207</span>, <span class="pl-c">// listen port</span> <span class="pl-s">'<span class="pl-s">heartbeat_time</span>'</span> => <span class="pl-c1">20</span>, <span class="pl-c">// Heartbeat detection time, seconds</span> <span class="pl-s">'<span class="pl-s">timer_time</span>'</span> => <span class="pl-c1">3</span>, <span class="pl-c">// Scheduled task time,seconds</span> <span class="pl-s">'<span class="pl-s">max_size</span>'</span> => <span class="pl-c1">100</span>, <span class="pl-c">// Data retention,1~1000,Data is stored by channel name</span> <span class="pl-s">'<span class="pl-s">data_time</span>'</span> => <span class="pl-c1">1</span>, <span class="pl-c">// Time interval for getting data,seconds</span> <span class="pl-s">'<span class="pl-s">debug</span>'</span> => <span class="pl-c1">true</span>, ], <span class="pl-s">'<span class="pl-s">log</span>'</span> => [ <span class="pl-s">'<span class="pl-s">level</span>'</span> => <span class="pl-s">'<span class="pl-s">debug</span>'</span>, <span class="pl-s">'<span class="pl-s">file</span>'</span> => <span class="pl-s">'<span class="pl-s">/tmp/exchange.log</span>'</span>, ], ], ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span> = Factory::<span class="pl-en">coinbase</span>(<span class="pl-s1"><span class="pl-c1">$</span>config</span>[<span class="pl-s">'<span class="pl-s">coinbase</span>'</span>]);</pre></div> </details> <details> <summary>1. Account Information</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// List Accounts - Get a list of trading accounts from the profile of the API key. $app->user->accounts(); // Get an Account - Information for a single account. $app->user->account($account_id); // Get Account History - List account activity of the API key's profile. $app->user->history($account_id, $params = []); // Get Holds - List holds of an account that belong to the same profile as the API key. $app->user->holds($account_id, $params = []); // List Accounts - Get a list of your coinbase accounts. $app->user->coinbaseAccounts(); // fees - Get Current Fees. $app->user->fees(); // List Profiles. $app->user->profiles(); // Get a Profile. $app->user->profile($profile_id); // Create profile transfer - Transfer funds from API key's profile to another user owned profile. $app->user->transfer($params);"><pre><span class="pl-c">// List Accounts - Get a list of trading accounts from the profile of the API key.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">accounts</span>(); <span class="pl-c">// Get an Account - Information for a single account.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">account</span>(<span class="pl-s1"><span class="pl-c1">$</span>account_id</span>); <span class="pl-c">// Get Account History - List account activity of the API key's profile.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">history</span>(<span class="pl-s1"><span class="pl-c1">$</span>account_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// Get Holds - List holds of an account that belong to the same profile as the API key.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">holds</span>(<span class="pl-s1"><span class="pl-c1">$</span>account_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span> = []); <span class="pl-c">// List Accounts - Get a list of your coinbase accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">coinbaseAccounts</span>(); <span class="pl-c">// fees - Get Current Fees.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">fees</span>(); <span class="pl-c">// List Profiles.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">profiles</span>(); <span class="pl-c">// Get a Profile.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">profile</span>(<span class="pl-s1"><span class="pl-c1">$</span>profile_id</span>); <span class="pl-c">// Create profile transfer - Transfer funds from API key's profile to another user owned profile.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">user</span>-><span class="pl-en">transfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>2. Market Data</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Products - Get a list of available currency pairs for trading. $app->market->products(); // Get Single Product - Get market data for a specific currency pair. $product_id = 'BTC-USD'; $app->market->product($product_id); // Get Product Order Book - Get a list of open orders for a product. The amount of detail shown can be customized with the level parameter. $level = 2; $app->market->depth($product_id, $level); // Get Product Ticker - Snapshot information about the last trade (tick), best bid/ask and 24h volume. $app->market->tickers($product_id); // Get Trades - List the latest trades for a product. $params = [ 'before' => 10, 'limit' => 5]; $app->market->trades($product_id, $params); // Get Historic Rates - Historic rates for a product. Rates are returned in grouped buckets based on requested granularity. $app->market->kline($product_id); // Get 24hr Stats - Get 24 hr stats for the product. volume is in base currency units. open, high, low are in quote currency units. $app->market->hr24($product_id); // Get currencies - List known currencies. $app->market->currencies(); // Get a currency - List the currency for specified id. $id = 'BTC'; $app->market->currency($id); // Get the API server time. $app->market->time();"><pre><span class="pl-c">// Get Products - Get a list of available currency pairs for trading.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">products</span>(); <span class="pl-c">// Get Single Product - Get market data for a specific currency pair.</span> <span class="pl-s1"><span class="pl-c1">$</span>product_id</span> = <span class="pl-s">'<span class="pl-s">BTC-USD</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">product</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get Product Order Book - Get a list of open orders for a product. The amount of detail shown can be customized with the level parameter.</span> <span class="pl-s1"><span class="pl-c1">$</span>level</span> = <span class="pl-c1">2</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">depth</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>level</span>); <span class="pl-c">// Get Product Ticker - Snapshot information about the last trade (tick), best bid/ask and 24h volume.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">tickers</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get Trades - List the latest trades for a product.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">before</span>'</span> => <span class="pl-c1">10</span>, <span class="pl-s">'<span class="pl-s">limit</span>'</span> => <span class="pl-c1">5</span>]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">trades</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>, <span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get Historic Rates - Historic rates for a product. Rates are returned in grouped buckets based on requested granularity.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">kline</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get 24hr Stats - Get 24 hr stats for the product. volume is in base currency units. open, high, low are in quote currency units.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">hr24</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get currencies - List known currencies.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">currencies</span>(); <span class="pl-c">// Get a currency - List the currency for specified id.</span> <span class="pl-s1"><span class="pl-c1">$</span>id</span> = <span class="pl-s">'<span class="pl-s">BTC</span>'</span>; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">currency</span>(<span class="pl-s1"><span class="pl-c1">$</span>id</span>); <span class="pl-c">// Get the API server time.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">market</span>-><span class="pl-en">time</span>();</pre></div> </details> <details> <summary>3. Wallet</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get Current Exchange Limits. $app->wallet->exchangeLimits(); // List Deposits Or List Withdrawals. $app->wallet->transferHistory($params); // Single Deposit Or Single Withdrawal. $app->wallet->getTransfer($transfer_id); // List Payment Methods. $app->wallet->paymentMethods(); // Payment method - Deposit funds from a payment method. $app->wallet->depositPaymentMethod($params); // Payment method - Withdraw funds to a payment method. $app->wallet->withdrawalPaymentMethod($params); // Coinbase - Deposit funds from a coinbase account. $app->wallet->depositCoinbaseAccount($params); // Coinbase - Withdraw funds to a coinbase account. $app->wallet->withdrawalCoinbaseAccount($params); // List Accounts - Get a list of your coinbase accounts. $app->wallet->listAccounts(); // Generate a Crypto Deposit Address. $app->wallet->generateDepositAddress($account_id); // Withdraws funds to a crypto address. $app->wallet->withdrawalCrypto($params); // Fee Estimate - Gets the network fee estimate when sending to the given address. $app->wallet->feeEstimate($currency, $crypto_address); // Create Conversion - eg:Convert $10,000.00 to 10,000.00 USDC. $app->wallet->conversion($params);"><pre><span class="pl-c">// Get Current Exchange Limits.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">exchangeLimits</span>(); <span class="pl-c">// List Deposits Or List Withdrawals.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">transferHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Single Deposit Or Single Withdrawal.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">getTransfer</span>(<span class="pl-s1"><span class="pl-c1">$</span>transfer_id</span>); <span class="pl-c">// List Payment Methods.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">paymentMethods</span>(); <span class="pl-c">// Payment method - Deposit funds from a payment method.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositPaymentMethod</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Payment method - Withdraw funds to a payment method.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawalPaymentMethod</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Coinbase - Deposit funds from a coinbase account.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">depositCoinbaseAccount</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Coinbase - Withdraw funds to a coinbase account.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawalCoinbaseAccount</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// List Accounts - Get a list of your coinbase accounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">listAccounts</span>(); <span class="pl-c">// Generate a Crypto Deposit Address.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">generateDepositAddress</span>(<span class="pl-s1"><span class="pl-c1">$</span>account_id</span>); <span class="pl-c">// Withdraws funds to a crypto address.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">withdrawalCrypto</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Fee Estimate - Gets the network fee estimate when sending to the given address.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">feeEstimate</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>, <span class="pl-s1"><span class="pl-c1">$</span>crypto_address</span>); <span class="pl-c">// Create Conversion - eg:Convert $10,000.00 to 10,000.00 USDC.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">wallet</span>-><span class="pl-en">conversion</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>4. Trade</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Place a New Order. $params = [ 'size' => '0.01', 'price' => '0.100', 'side' => 'buy', 'product_id' => 'BTC-USD', ]; $app->trade->order($params); // Cancel an Order. $app->trade->cancelOrder($id = '', $client_oid = '', $product_id = ''); // Cancel all. $app->trade->cancelOrders($product_id = ''); // List Orders. $app->trade->orders($params); // Get an Order. $app->trade->get($id = '', $client_oid = ''); // List Fills - Get a list of recent fills of the API key's profile. $app->trade->fills($params);"><pre><span class="pl-c">// Place a New Order.</span> <span class="pl-s1"><span class="pl-c1">$</span>params</span> = [ <span class="pl-s">'<span class="pl-s">size</span>'</span> => <span class="pl-s">'<span class="pl-s">0.01</span>'</span>, <span class="pl-s">'<span class="pl-s">price</span>'</span> => <span class="pl-s">'<span class="pl-s">0.100</span>'</span>, <span class="pl-s">'<span class="pl-s">side</span>'</span> => <span class="pl-s">'<span class="pl-s">buy</span>'</span>, <span class="pl-s">'<span class="pl-s">product_id</span>'</span> => <span class="pl-s">'<span class="pl-s">BTC-USD</span>'</span>, ]; <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">order</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Cancel an Order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelOrder</span>(<span class="pl-s1"><span class="pl-c1">$</span>id</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>client_oid</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>product_id</span> = <span class="pl-s">''</span>); <span class="pl-c">// Cancel all.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">cancelOrders</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span> = <span class="pl-s">''</span>); <span class="pl-c">// List Orders.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">orders</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>); <span class="pl-c">// Get an Order.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>id</span> = <span class="pl-s">''</span>, <span class="pl-s1"><span class="pl-c1">$</span>client_oid</span> = <span class="pl-s">''</span>); <span class="pl-c">// List Fills - Get a list of recent fills of the API key's profile.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">trade</span>-><span class="pl-en">fills</span>(<span class="pl-s1"><span class="pl-c1">$</span>params</span>);</pre></div> </details> <details> <summary>5. Margin</summary> <div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Get margin profile information. $app->margin->profileInformation($product_id); // Get buying power or selling power. $app->margin->buyingPower($product_id); // Get withdrawal power. $app->margin->withdrawalPower($currency); // Get all withdrawal powers. $app->margin->withdrawalPowers(); // Get exit plan. $app->margin->exitPlan(); // List liquidation history. $app->margin->liquidationHistory($after = ''); // Get position refresh amounts. $app->margin->positionRefreshAmounts(); // Get margin status - Returns whether margin is currently enabled. $app->margin->status();"><pre><span class="pl-c">// Get margin profile information.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">profileInformation</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get buying power or selling power.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">buyingPower</span>(<span class="pl-s1"><span class="pl-c1">$</span>product_id</span>); <span class="pl-c">// Get withdrawal power.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">withdrawalPower</span>(<span class="pl-s1"><span class="pl-c1">$</span>currency</span>); <span class="pl-c">// Get all withdrawal powers.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">withdrawalPowers</span>(); <span class="pl-c">// Get exit plan.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">exitPlan</span>(); <span class="pl-c">// List liquidation history.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">liquidationHistory</span>(<span class="pl-s1"><span class="pl-c1">$</span>after</span> = <span class="pl-s">''</span>); <span class="pl-c">// Get position refresh amounts.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">positionRefreshAmounts</span>(); <span class="pl-c">// Get margin status - Returns whether margin is currently enabled.</span> <span class="pl-s1"><span class="pl-c1">$</span>app</span>-><span class="pl-c1">margin</span>-><span class="pl-en">status</span>();</pre></div> </details> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">Donation Address:</h2><a id="user-content-donation-address" class="anchor" aria-label="Permalink: Donation Address:" href="#donation-address"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <markdown-accessiblity-table><table> <thead> <tr> <th align="center">Coin</th> <th align="center">Address</th> </tr> </thead> <tbody> <tr> <td align="center">DOGE</td> <td align="center">D5QXoFYTAzs756SnP4gqiEePtrb5oQZRrW</td> </tr> <tr> <td align="center">XRP</td> <td align="center">rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh // TAG:310515423</td> </tr> <tr> <td align="center">BTC</td> <td align="center">163guqWS4hcpPcfzaEUa1NypH3PLdEJ9TE</td> </tr> <tr> <td align="center">ETH</td> <td align="center">0xab6b060592bce331a1bb4e649016173274a99cb0</td> </tr> </tbody> </table></markdown-accessiblity-table> <div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">API Support</h2><a id="user-content-api-support" class="anchor" aria-label="Permalink: API Support" href="#api-support"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div> <markdown-accessiblity-table><table> <thead> <tr> <th align="center">contact us</th> <th align="center">detail</th> </tr> </thead> <tbody> <tr> <td align="center">QQ Group</td> <td align="center">871358160</td> </tr> <tr> <td align="center">Email</td> <td align="center"><a href="mailto:lianbo.wan@gmail.com">lianbo.wan@gmail.com</a></td> </tr> <tr> <td align="center">Email</td> <td align="center"><a href="mailto:sting_bo@163.com">sting_bo@163.com</a></td> </tr> </tbody> </table></markdown-accessiblity-table> </article></div></div></div></div></div> <!-- --> <!-- --> <script type="application/json" id="__PRIMER_DATA_:R0:__">{"resolvedServerColorMode":"day"}</script></div> </react-partial> <input type="hidden" data-csrf="true" value="BCo8zsc3r4Gr0BSQoTtWIaJJoOetkAAdhqBfUkvKdm7XCVCRcDEJXLWSHz4gOgY5vpawEmnPVRoNUwciR8IIow==" /> </div> <div data-view-component="true" class="Layout-sidebar"> <div class="BorderGrid about-margin" data-pjax> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <div class="hide-sm hide-md"> <h2 class="mb-3 h4">About</h2> <p class="f4 my-3"> PHP SDK for digital currency exchange,include Binance,OKEx,Huobi,Gate,CoinBase etc / 好用的PHP数字货币交易SDK,包括币安,火币,欧易,芝麻开门,Coinbase等 </p> <h3 class="sr-only">Topics</h3> <div class="my-3"> <div class="f6"> <a href="/topics/php" title="Topic: php" data-view-component="true" class="topic-tag topic-tag-link"> php </a> <a href="/topics/coinbase" title="Topic: coinbase" data-view-component="true" class="topic-tag topic-tag-link"> coinbase </a> <a href="/topics/exchange" title="Topic: exchange" data-view-component="true" class="topic-tag topic-tag-link"> exchange </a> <a href="/topics/php-sdk" title="Topic: php-sdk" data-view-component="true" class="topic-tag topic-tag-link"> php-sdk </a> <a href="/topics/market-data" title="Topic: market-data" data-view-component="true" class="topic-tag topic-tag-link"> market-data </a> <a href="/topics/wallet" title="Topic: wallet" data-view-component="true" class="topic-tag topic-tag-link"> wallet </a> <a href="/topics/trade" title="Topic: trade" data-view-component="true" class="topic-tag topic-tag-link"> trade </a> <a href="/topics/huobi" title="Topic: huobi" data-view-component="true" class="topic-tag topic-tag-link"> huobi </a> <a href="/topics/margin" title="Topic: margin" data-view-component="true" class="topic-tag topic-tag-link"> margin </a> <a href="/topics/sdk-php" title="Topic: sdk-php" data-view-component="true" class="topic-tag topic-tag-link"> sdk-php </a> <a href="/topics/gate" title="Topic: gate" data-view-component="true" class="topic-tag topic-tag-link"> gate </a> <a href="/topics/coinbase-api" title="Topic: coinbase-api" data-view-component="true" class="topic-tag topic-tag-link"> coinbase-api </a> <a href="/topics/binance" title="Topic: binance" data-view-component="true" class="topic-tag topic-tag-link"> binance </a> <a href="/topics/okex" title="Topic: okex" data-view-component="true" class="topic-tag topic-tag-link"> okex </a> <a href="/topics/spot-trade" title="Topic: spot-trade" data-view-component="true" class="topic-tag topic-tag-link"> spot-trade </a> <a href="/topics/digital-currency-exchange" title="Topic: digital-currency-exchange" data-view-component="true" class="topic-tag topic-tag-link"> digital-currency-exchange </a> </div> </div> <h3 class="sr-only">Resources</h3> <div class="mt-2"> <a class="Link--muted" data-analytics-event="{"category":"Repository Overview","action":"click","label":"location:sidebar;file:readme"}" href="#readme-ov-file"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book mr-2"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> Readme </a> </div> <h3 class="sr-only">License</h3> <div class="mt-2"> <a href="#MIT-1-ov-file" class="Link--muted" data-analytics-event="{"category":"Repository Overview","action":"click","label":"location:sidebar;file:license"}" > <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-law mr-2"> <path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path> </svg> MIT license </a> </div> <include-fragment src="/stingbo/easyexchange/hovercards/citation/sidebar_partial?tree_name=master"> </include-fragment> <div class="mt-2"> <a href="/stingbo/easyexchange/activity" data-view-component="true" class="Link Link--muted"><svg text="gray" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pulse mr-2"> <path d="M6 2c.306 0 .582.187.696.471L10 10.731l1.304-3.26A.751.751 0 0 1 12 7h3.25a.75.75 0 0 1 0 1.5h-2.742l-1.812 4.528a.751.751 0 0 1-1.392 0L6 4.77 4.696 8.03A.75.75 0 0 1 4 8.5H.75a.75.75 0 0 1 0-1.5h2.742l1.812-4.529A.751.751 0 0 1 6 2Z"></path> </svg> <span class="color-fg-muted">Activity</span></a> </div> <h3 class="sr-only">Stars</h3> <div class="mt-2"> <a href="/stingbo/easyexchange/stargazers" data-view-component="true" class="Link Link--muted"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg> <strong>84</strong> stars</a> </div> <h3 class="sr-only">Watchers</h3> <div class="mt-2"> <a href="/stingbo/easyexchange/watchers" data-view-component="true" class="Link Link--muted"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye mr-2"> <path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14c-1.981 0-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2ZM1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5c1.473 0 2.825-.742 3.955-1.715 1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5c-1.473 0-2.825.742-3.955 1.715-1.124.967-1.954 2.096-2.366 2.717ZM8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10Z"></path> </svg> <strong>3</strong> watching</a> </div> <h3 class="sr-only">Forks</h3> <div class="mt-2"> <a href="/stingbo/easyexchange/forks" data-view-component="true" class="Link Link--muted"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg> <strong>31</strong> forks</a> </div> <div class="mt-2"> <a class="Link--muted" href="/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fstingbo%2Feasyexchange&report=stingbo+%28user%29"> Report repository </a> </div> </div> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame"> <a href="/stingbo/easyexchange/releases" data-view-component="true" class="Link--primary no-underline Link">Releases <span title="17" data-view-component="true" class="Counter">17</span></a></h2> <a class="Link--primary d-flex no-underline" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/stingbo/easyexchange/releases/tag/v2.0.5"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-tag flex-shrink-0 mt-1 color-fg-success"> <path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"></path> </svg> <div class="ml-2 min-width-0"> <div class="d-flex"> <span class="css-truncate css-truncate-target text-bold mr-2" style="max-width: none;">v2.0.5</span> <span title="Label: Latest" data-view-component="true" class="Label Label--success flex-shrink-0"> Latest </span> </div> <div class="text-small color-fg-muted"><relative-time datetime="2023-01-20T14:45:31Z" class="no-wrap">Jan 20, 2023</relative-time></div> </div> </a> <div data-view-component="true" class="mt-3"> <a text="small" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/stingbo/easyexchange/releases" data-view-component="true" class="Link">+ 16 releases</a></div> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3"> <a href="/users/stingbo/packages?repo_name=easyexchange" data-view-component="true" class="Link--primary no-underline Link d-flex flex-items-center">Packages <span title="0" hidden="hidden" data-view-component="true" class="Counter ml-1">0</span></a></h2> <div class="text-small color-fg-muted" > No packages published <br> </div> </div> </div> <div class="BorderGrid-row" hidden> <div class="BorderGrid-cell"> <include-fragment src="/stingbo/easyexchange/used_by_list" accept="text/fragment+html"> </include-fragment> </div> </div> <div class="BorderGrid-row"> <div class="BorderGrid-cell"> <h2 class="h4 mb-3">Languages</h2> <div class="mb-2"> <span data-view-component="true" class="Progress"> <span style="background-color:#4F5D95 !important;;width: 100.0%;" itemprop="keywords" data-view-component="true" class="Progress-item color-bg-success-emphasis"></span> </span></div> <ul class="list-style-none"> <li class="d-inline"> <a class="d-inline-flex flex-items-center flex-nowrap Link--secondary no-underline text-small mr-3" href="/stingbo/easyexchange/search?l=php" data-ga-click="Repository, language stats search click, location:repo overview"> <svg style="color:#4F5D95;" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill mr-2"> <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path> </svg> <span class="color-fg-default text-bold mr-1">PHP</span> <span>100.0%</span> </a> </li> </ul> </div> </div> </div> </div> </div></div> </div> </div> </turbo-frame> </main> </div> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path> </svg> </a> <span> © 2025 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>