{"id":27089045,"url":"https://github.com/soldapper/mcswap-sdk","last_synced_at":"2025-04-06T06:38:02.776Z","repository":{"id":274725185,"uuid":"923885703","full_name":"SolDapper/mcswap-sdk","owner":"SolDapper","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-28T10:40:15.000Z","size":87,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T11:34:32.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolDapper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-29T02:02:54.000Z","updated_at":"2025-03-28T10:40:18.000Z","dependencies_parsed_at":"2025-03-28T11:28:17.477Z","dependency_job_id":"f901a423-6d5f-408c-b847-83264dc785c9","html_url":"https://github.com/SolDapper/mcswap-sdk","commit_stats":null,"previous_names":["soldapper/mcswap-sdk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolDapper%2Fmcswap-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolDapper%2Fmcswap-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolDapper%2Fmcswap-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolDapper%2Fmcswap-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolDapper","download_url":"https://codeload.github.com/SolDapper/mcswap-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445655,"owners_count":20939953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-06T06:38:02.105Z","updated_at":"2025-04-06T06:38:02.767Z","avatar_url":"https://github.com/SolDapper.png","language":"JavaScript","readme":"# mcswap-sdk\nJavascript SDK for the McSwap Protocol\n\nMcSwap is a Trustless Smart Escrow Protocol on the Solana Blockchain that enables app developers to build their own Marketplaces and OTC services for digital assets. Direct onchain revenue sharing is built-in and allows developers to define usage fees for when \nthey or their application's users create or execute McSwap Escrows through their apps and tools.\n\n![powered by solana](https://cd6na2lma222gpigviqcpr5n7uewgxd7uhockofelflsuaop7oiq.arweave.net/EPzQaWwGtaM9BqogJ8et_QljXH-h3CU4pFlXKgHP-5E)\n\n# Install\n```javascript\nnpm i mcswap-sdk\n```\n\n# Import\n```javascript\nimport mcswap from 'mcswap-sdk';\n```\n\n# Methods\n[mcswap-spl](https://solana.fm/address/BG9YVprV4XeQR15puwwaWfBBPzamTtuMRJLkAa8pG5hz/verification)\n```javascript\nmcswap.splCreate\nmcswap.splExecute\nmcswap.splCancel\nmcswap.splReceived\nmcswap.splSent\n```\n\n[mcswap-core](https://solana.fm/address/DE6UDLhAu8U8CL6b1XPjj76merQeSKFYgPQs2R4jc7Ba/verification)\n```javascript\nmcswap.coreCreate\nmcswap.coreCancel\nmcswap.coreExecute\nmcswap.coreReceived\nmcswap.coreSent\n```\n\n[mcswap-nft](https://solana.fm/address/34dUBGrhkvjGDPSuH3zgtpBdBwZ6QSag8JpvZAnXmXTR/verification)\n```javascript\nmcswap.nftCreate\nmcswap.nftCancel\nmcswap.nftExecute\nmcswap.nftReceived\nmcswap.nftSent\n```\n\n[mcswap-pnft](https://solana.fm/address/6aGKsKBA9zRbBZ2xKof94JEFf73vQg6kTWkB6gqtgfFm/verification)\n```javascript\nmcswap.pnftCreate\nmcswap.pnftCancel\nmcswap.pnftExecute\nmcswap.pnftReceived\nmcswap.pnftSent\n```\n\n[mcswap-cnft](https://solana.fm/address/GyQWcNNXnU2qhTry6f8CBv4M7vjV4Jab5nojvgAMQdjg/verification)\n```javascript\nmcswap.cnftCreate\nmcswap.cnftCancel\nmcswap.cnftExecute\nmcswap.cnftReceived\nmcswap.cnftSent\n```\n\nutilities\n```javascript\nmcswap.tx\nmcswap.send\nmcswap.status\nmcswap.fetch\nmcswap.fee\n```\n\n# Examples\n\n## example setup\n```javascript\nimport { Keypair } from \"@solana/web3.js\";\nconst rpc = \"https://staked.helius-rpc.com?api-key=YOUR-KEY\";\nconst secret = [1,2,3,4,5,~];\nconst signer = Keypair.fromSecretKey(new Uint8Array(secret));\n```\n\n## base fees\ngets the current base fee for the protocol by asset standard\n``` javascript\nconst fee = await mcswap.fee({\n    rpc: rpc, \n    display: true,\n    standard: \"nft\" // nft, pnft, cnft, core\n});\nconsole.log(fee);\n```\n\n## mcswap-spl\n### splCreate Escrow\n```javascript\nconst tx = await mcswap.splCreate({\n    rpc: rpc,\n    builder: true, // builder false will return ix for tx only\n    blink: false, // blink true will return a base64 formatted object\n    tolerance: 1.2, // cu estimate multiplier for padding if needed\n    priority: \"Medium\", // priority fee level\n    convert: true, // convert true because we're passing decimal values for amounts below\n    affiliateWallet: \"ACgZcmgmAnMDxXxZUo9Zwg2PS6WQLXy63JnnLmJFYxZZ\",\n    affiliateFee: \"0.0009\",\n    seller: \"7Z3LJB2rxV4LiRBwgwTcufAWxnFTVJpcoCMiCo8Z5Ere\", // provider\n    token1Mint: \"So11111111111111111111111111111111111111112\",\n    token1Amount: \"0.001\",\n    token2Mint: false,\n    token2Amount: false,\n    buyer: false, // buyer false makes this a public listing\n    token3Mint: \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\",\n    token3Amount: \"0.003\",\n    token4Mint: false,\n    token4Amount: false\n});\nif(tx.tx){\n    tx.tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx.tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    if(status!=\"finalized\"){console.log(status);}\n    else{\n        console.log(status);\n        const escrow = await mcswap.fetch({\n            rpc:rpc, display:true, standard:\"spl\", escrow:tx.escrow\n        });\n        console.log(escrow);\n    }\n}\nelse{\n    console.log(tx);\n}\n```\n\n### splCancel Escrow\n```javascript\nconst tx = await mcswap.splCancel({\n    rpc: rpc,\n    escrow: \"2jcih7dUFmEQfMUXQQnL2Fkq9zMqj4jwpHqvRVe3gGLL\" // escrow id (acct)\n});\nif(typeof tx.status!=\"undefined\"){console.log(tx);}\nelse{\n    tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    console.log(status);\n}\n```\n\n### splExecute Escrow\n```javascript\nconst tx = await mcswap.splExecute({\n    rpc: rpc,\n    convert: true,\n    affiliateWallet: \"ACgZcmgmAnMDxXxZUo9Zwg2PS6WQLXy63JnnLmJFYxZZ\",\n    affiliateFee: \"0.0009\",\n    escrow: \"3pjxfm25WWwD9BcWSqBFamJKYgEpNAnEz8mEmxk9biBQ\",\n    buyer: \"2jcih7dUFmEQfMUXQQnL2Fkq9zMqj4jwpHqvRVe3gGLL\",\n    memo: \"Awesome Memo Man!\"\n});\nif(typeof tx.status!=\"undefined\"){console.log(tx);}\nelse{\n    tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    console.log(status);\n}\n```\n\n### splReceived Escrows\n```javascript\nconst splReceived = await mcswap.splReceived({\n    rpc: rpc,\n    display: true,\n    wallet: \"2jcih7dUFmEQfMUXQQnL2Fkq9zMqj4jwpHqvRVe3gGLL\"\n});\nconsole.log(splReceived);\n```\n\n### splSent Escrows\n```javascript\nconst splSent = await mcswap.splSent({\n    rpc: rpc,\n    display: true,\n    private: false, // (default) private false returns public listings\n    wallet: \"7Z3LJB2rxV4LiRBwgwTcufAWxnFTVJpcoCMiCo8Z5Ere\"\n});\nconsole.log(splSent);\n```\n\n## mcswap-nft\n### nftCreate, pnftCreate, cnftCreate, coreCreate\n```javascript\nconst tx = await mcswap.nftCreate({\n    rpc: rpc,\n    builder: true,\n    blink: false,\n    convert: true,\n    tolerance: 1.2,\n    priority: \"Medium\",\n    affiliateWallet: \"ACgZcmgmAnMDxXxZUo9Zwg2PS6WQLXy63JnnLmJFYxZZ\",\n    affiliateFee: \"0.0009\",\n    seller: \"7Z3LJB2rxV4LiRBwgwTcufAWxnFTVJpcoCMiCo8Z5Ere\",\n    sellerMint: \"5Jk6hn3rR1DJjtDU4MzgDuN3SXH4nfHiYgqmEVhGyEUt\",\n    buyer: false, // buyer false makes this a public listing\n    buyerMint: false,\n    lamports: \"0.0001\",\n    tokenMint: \"2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo\",\n    units: \"0.01\"\n});\nif(tx.status){console.log(tx);}\nelse{\n    tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    if(status!=\"finalized\"){console.log(\"status\", status);}\n    else{\n        console.log(status);\n        const escrow = await mcswap.fetch({\n            rpc: rpc,\n            display: true,\n            standard: \"nft\", // nft, pnft, cnft, core\n            sellerMint: \"5Jk6hn3rR1DJjtDU4MzgDuN3SXH4nfHiYgqmEVhGyEUt\",\n            buyerMint: false\n        });\n        console.log(escrow);\n    }\n}\n```\n\n### nftCancel, pnftCancel, cnftCancel, coreCancel\n```javascript\nconst tx = await mcswap.nftCancel({\n    rpc: rpc,\n    blink: false,\n    sellerMint: \"5Jk6hn3rR1DJjtDU4MzgDuN3SXH4nfHiYgqmEVhGyEUt\",\n    buyerMint: false,\n});\nif(tx.status){console.log(tx);}\nelse{\n    tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    console.log(status);\n}\n```\n\n### nftExecute, pnftExecute, cnftExecute, coreExecute\n```javascript\nconst tx = await mcswap.nftExecute({\n    rpc: rpc,\n    blink: false,\n    convert: true,\n    tolerance: 1.2,\n    priority: \"Medium\",\n    affiliateWallet: \"ACgZcmgmAnMDxXxZUo9Zwg2PS6WQLXy63JnnLmJFYxZZ\",\n    affiliateFee: \"0.0009\",\n    buyer: \"2jcih7dUFmEQfMUXQQnL2Fkq9zMqj4jwpHqvRVe3gGLL\",\n    sellerMint: \"5Jk6hn3rR1DJjtDU4MzgDuN3SXH4nfHiYgqmEVhGyEUt\",\n    buyerMint: false,\n    memo: \"Awesome Memo Man!\"\n});\nif(tx.status){console.log(tx);}\nelse{\n    tx.sign([signer]);\n    const signature = await mcswap.send(rpc,tx);\n    console.log(\"signature\", signature);\n    console.log(\"awaiting status...\");\n    const status = await mcswap.status(rpc,signature);\n    console.log(status);\n}\n```\n\n### nftReceived, pnftReceived, cnftReceived, coreReceived\n```javascript\nconst nftReceived = await mcswap.nftReceived({\n    rpc: rpc,\n    display: true,\n    wallet: \"2jcih7dUFmEQfMUXQQnL2Fkq9zMqj4jwpHqvRVe3gGLL\"\n});\nconsole.log(nftReceived);\n```\n\n### nftSent, pnftSent, cnftSent, coreSent\n```javascript\nconst nftSent = await mcswap.nftSent({\n    rpc: rpc,\n    display: true,\n    private: false, // private false returns public listings by default\n    wallet: \"7Z3LJB2rxV4LiRBwgwTcufAWxnFTVJpcoCMiCo8Z5Ere\"\n});\nconsole.log(nftSent);\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoldapper%2Fmcswap-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoldapper%2Fmcswap-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoldapper%2Fmcswap-sdk/lists"}