Changelog

The latest updates and improvements to Splits
Subscribe for future updates
Feature image for https://splits.ghost.io/content/images/2024/07/sa_swap.png

Swapping within a smart account

You can now swap tokens directly within a smart account. No need to connect your account to a third party app to perform the swap. And no need to pre-approve each token, since ERC20s are natively batched into a single transaction thanks to smart accounts.

Swap tokens without leaving the Splits app

Swapping is one of the most common actions people take with their smart accounts—often because they need to send someone a token they don't currently have—so we're excited to bring this functionality into the app directly. We charge no fees on these swaps.

App performance

Most of our product and engineering focus the past few weeks has gone towards app performance (i.e., page load times) and tech debt. We also optimized a number of internal processes around developer experience, which will result in faster development times for our team moving forward.

Feature image for https://splits.ghost.io/content/images/2024/06/passkey_signin.png

Passkeys

You can now use passkeys to sign in on the app. This is considerably faster than having to open your email and follow a link. You can add passkeys from your account settings page. Currently this functionality is limited to desktop - mobile support is coming soon.

Add passkeys from your account settings page

Address Book

The new Address Book feature lets you save regularly used addresses in the app. You're able to replace the hexadecimal addresses (e.g., 0x1234...) with human-readable names (e.g., "Songcamp treasury"). This is built on top of the names feature we launched a few months ago. We'll be adding support for this in more parts of the product soon (e.g., when creating a new contract, transferring assets, etc).

Use the Address Book to save regularly used addresses in the app

Smart accounts updates

We shipped a bunch of updates to beta users of smart accounts. Some of these include: creating smart accounts with a custom number of signers and threshold, adding memo's to transactions to help with accounting, and adding roles to teammates (e.g., admins, members).

Other fixes & improvements

  • Fixed a bug where withdrawal events from v2 weren't showing in our app
  • Fixed an issue with robots.txt and our sitemap that was causing indexing issues
  • Fixed a web socket connection issue that was causing balances to not consistently display properly
  • Improved the interaction on the "Distribute" button on a Split detail page
  • Added SSR and SIR to our marketing site
  • Added a bunch of polish to our internal design system (dialogs, form inputs, etc)
Feature image for https://splits.ghost.io/content/images/2024/05/cover_changelog.png

Upgrade to the latest SDK

If you’re using our SDK, you should upgrade to the latest version. The Graph is sunsetting their hosted subgraphs in a few weeks, and as a result we needed to move our SDK off their service.

If you’re only creating or updating Splits, the old SDK will continue to work. However, if you’re fetching data—displaying recipients, distributing balances, getting metadata, etc—you must upgrade to the latest version.

Smart accounts updates

We're continuing to make steady progress on our smart accounts product. As a reminder, this product makes it super easy for teams to manage all their accounts (revenue, expenses, etc) across dozens of chains at once.

Transfer to any Farcaster user by entering their username

Here are some of the things we shipped since our update two weeks ago:

  • You can now add teammates to your workspace, letting you share things like smart accounts, tags, labels, etc
  • Each transaction now has its own page (example), making it easier for folks to share specific transactions with others
  • You can transfer assets to any Farcaster user by entering their username
  • You can simulate transactions (we use Tenderly for this right now)
  • We improved the transaction data display, including adding decoded calls
  • You can sign messages via a smart account prior to it being deployed (ERC 6492)
  • You can delete unused passkeys from your account
  • ...and a ton of small UX improvements and bug fixes

The team is on a tear. We're shipping updates every day and publishing videos each week. The best way to stay in the loop is by following along on Warpcast.

Other fixes & improvements

  • Added support for Blast in our SDK
  • Deployed the contracts to Arbitrum Sepolia
  • Added an indicator showing what network your wallet is connected to, regardless of where in the app you are
  • Fixed an issue related to kyberswap CORS that was causing problems with Diversifier on certain networks
  • Fixed a UI issue with hover cards, that caused tags to overflow out of view
  • Fixed an API rate limit issue
Feature image for https://splits.ghost.io/content/images/2024/05/v2_cover.png

Splits v2

We launched Splits v2 earlier this week. This is an entirely new set of smart contracts that incorporate over 2 years of feedback and learnings.

v2 was audited by Zach Obront and is already being used in our own app and a few early partners. Check out the launch post for more information on what changed from v1.

Smart Accounts

We continue to make progress and publish videos on our new smart accounts product. This product makes it easy for teams to manage all their wallets across dozens of chains at once. We've been using it ourselves and it's already sped up our internal operations 10x over our previous tools (a mix of Safes + EOAs).

Some of the things we've shipped in the past 2 weeks include:

  • Using WalletConnect to connect your smart accounts to other apps
  • Viewing and transferring NFTs owned by your smart accounts
  • Creating new operating wallets (1-of-n multisigs) that use passkeys as signers

We recommend following along on Warpcast since we post regular updates there. Using this product has made us realize how much today's tools have compromised usability in favor of self-custody, and we're fired up to be closing this gap.

Hiring

We are expanding the team! You can read more about the company and what roles we're looking for here. Please keep us in mind if you or anyone you know of would make a good fit.

Feature image for https://splits.ghost.io/content/images/2024/04/smart_accounts.png

Smart accounts demo

Last week we released a walkthrough video of our new smart accounts feature. This feature is a way for teams to set up crosschain multisig wallets that use passkeys as signers. You can check it out below and on Warpcast.

0:00
/4:01

We're working with a handful of design partners to get the product dialed in before a wider release. If you're managing an onchain team and want to beta test the product, please reach out on Warpcast.

Updated Split page

We released a major design update to the Split detail page. The page now uses a diagram to better illustrate the make up of the Split itself.

Updated landing page

We also launched a new version of our landing page at splits.org. This new visual identity better aligns our brand with our vision and where the product is headed.

Other fixes & improvements

  • Fixed bug related to Swapper and Diversifier owner flows on Optimism and Base.
  • We upgraded the SDK to better handle Sepolia testnet.
  • We made a number of small UI changes to the new Waterfall creation flow.
Feature image for https://splits.ghost.io/content/images/2024/04/help_center.png

Updated Help Center

We're working on a system for teams to better manage their shared wallets using smart accounts, multisigs, and passkeys. In preparation for this new product line launching soon, we spent some time last week reworking our Help Center to position us better for this new set of features.

Browse articles by category

We made a number of improvements, the biggest being the ability to browse articles by category. We've also reworked most of the articles for more coverage, and will be adding more in the coming days.

Other fixes & improvements

  • We fixed a ton of bugs related to the new multichain app - thank you to everyone who reported bugs.
  • We improved app performance and decreased page load times on the Dashboard and Explore pages.
  • We added multichain search.
  • We simplified the new Waterfall form.
  • We fixed some display bugs on Statements.
  • We discovered a number of bugs with our data provider that was causing errors in our app - thanks to the Goldsky team for the quick fixes here.
  • We shipped optimizations on the distributor bot.
Feature image for https://splits.ghost.io/content/images/2024/03/multichain_cover.png

Multichain app

Earlier this week, we launched our multichain app. This is a big upgrade to the app since you can now access your Splits, balances, and activity across all the chains in a single view. Gone are the days of manually switching between chains to see your activity.

View activity on all chains, or filter events by specific chains

For those interested, we'll be releasing a blog post that outlines our new architecture and how we built the multichain app.

This new architecture sets us up well for the next few features we're launching, since both v2 and smart accounts (more on these below) will take advantage of the multichain functionality.

V2: As mentioned before, we wrapped up an audit on a V2 of the contracts and are currently integrating the new system into the SDK and app. We expect V2 to go live in the next week or two.

Smart accounts: We're also working on a new team-based smart account system, which will make it easy for onchain teams to manage their earnings across all chains at once. The MVP will use multisig wallets and passkeys to allow teams to operate safely cross chain without worrying about bridging funds between networks. Please reach out if you're interested in being a beta tester for this new product.

Other fixes & improvements

  • We fixed a bug where Liquid Splits on L2s weren't showing the proper OpenSea link.
  • We've already shipped fixes for a number of bugs related to the multichain app - thanks everyone for their help in finding them.
  • We added a confirmation dialog when deleting your account, to prevent accidentally erasing all your info.
  • We shipped a handful of optimizations to the distributor bot.
Feature image for https://splits.ghost.io/content/images/2024/03/cover_changelog.png

Blast support

We deployed the contracts to Blast, making them accessible via Zora and other integrations. We haven't yet added Blast support to the app, but plan to do that soon.

API Keys

We added proper API keys for developers integrating Splits into their own apps. The API lets you do things like add names and tags to Splits created through your app.

To create a new API key, just go to your account setting page and generate a new key in the "API Keys" section.

Add API keys from your account settings page

Our API is still in beta so we're onboarding developers manually. Please reach out if you'd like to use it and we'll follow up.

Other fixes & improvements

  • We added support for additional networks to Splits Kit.
  • We fixed a bug where preview images (when shared on Warpcast, Discord, Twitter, etc) were showing "account not found".
  • We made a bunch of SDK updates and improvements.
Feature image for https://splits.ghost.io/content/images/2024/02/cover_changelog-6.png

Splits V2 security audit

We just finished a security audit on the Splits V2 smart contracts. V2 is an entirely new system (V1 will continue to operate as it does today) that is primarily focused on improving developer experience. Some of the changes include:

  • Separating the splitting logic from the token warehouse, allowing third-party devs to deposit directly into the warehouse and more easily iterate on different types of payment flows.
  • Using CREATE2 for all contracts (including mutable Splits), allowing contracts to be counterfactually deployed at the same address on multiple networks.
  • Making the warehouse ERC-6909 compatible, allowing tokens stored in the warehouse will be visible in wallets and other third-party products and offer different modules that rely on approval/operator flows.

We'll be writing more about the full list of improvements, so stay tuned.

Other fixes & improvements

  • We added a warning if creating an ownerless Swapper, since doing so could result in loss of funds if the oracle is unable to determine a clearing price.
  • We fixed a UI bug causing double counting in our app after distributing a Split on certain networks.
Feature image for https://splits.ghost.io/content/images/2024/02/cover_changelog-3.png

Tags API

Developers integrating Splits into their app can now add tags via the API endpoint. We’re onboarding developers to the API manually, so please reach out if you’ve integrated Splits and want to use the API to add names or tags to our app for the contracts created through your app.

The API lets you add names and tags to contracts created in your app

Here is an example of a Split with a public name.

Other fixes & improvements

  • We fixed a UI bug introduced by the Uniswap SDK that caused an issue with Swappers on Base
  • We fixed a UI bug on Base that caused ETH balances to not display correctly
  • We now show accurate ownership percentages for custom Liquid Splits that use custom mint and burn functions
Feature image for https://splits.ghost.io/content/images/2024/02/cover_changelog.png

New networks

Last week we deployed the Swapper and Diversifier contracts to Arbitrum. We also added Sepolia testnet support for all our contracts on Optimism, Base, and Zora. And we added Holesky support in the app.

The contracts are all verified on these networks, and you can use them in the app as well. You can see the networks on which each contract is deployed (including the testnets) in our docs.

Polishing

While most of our effort went towards two bigger projects we'll be releasing soon (multichain app and a V2 of the contracts), last week we also:

  • Fixed a UI bug with Waterfall not displaying distributions accurately
  • Fixed a UI bug on the Vesting contract earning section
  • Fixed a CSS import bug on SplitsKit
  • Improved the distributor bot's logic
Feature image for https://splits.ghost.io/content/images/2024/01/multichain_statements_cover.png

Multichain Statements

This week we shipped multichain earning statements. Now, you can view your earnings from each contract across all your preferred networks in one statement. You can create your own statement here.

Generate statements for earnings across chains

When creating a statement, all networks are included by default. If you only care about a subset of networks, just deselect the ones you don't want.

If any of your wallets on your dashboard had activity last year, you should have received an email yesterday with your 2023 earning statement.

Other fixes & improvements

  • You can turn on weekly emails for any account or contract, not just your own wallets. Just click the "Subscribe" button in the account/contract's activity section.
  • Changing the network no longer redirects the page back to the dashboard. Now when you change the network, you'll remain on whatever page you were viewing.
  • We upgraded the avatars shown in the app. User accounts show an ENS avatar if they have one set, and Splits contracts will show their contract icon (i.e., Split, Waterfall, Swapper, etc).
  • On an individual Split page, you can now see exactly how much each recipient has earned (in addition to their ownership share).
  • Fixed a few bugs on the SDK.
Feature image for https://splits.ghost.io/content/images/2024/01/swapper_cover-1.png
  • You can now create Swappers on Optimism, Base, Polygon, and Ethereum
  • Give it a try at swapper.new

Starting today, you can create Swappers on Optimism, Base, and Polygon directly through our app. When we announced Swapper in June, it was available only on Ethereum. As more transactions move to L2s, we're ensuring that all Splits infrastructure is accessible there as well.

Swapper is a payable smart contract that swaps ETH & ERC20 tokens into a predefined output token before sending those tokens to its beneficiary. As the beneficiary, this gives you control over the tokens you receive, no matter what is sent to you.

Swapper receives ETH and ERC20s, swaps into the output token, and sends to the beneficiary.

Since its launch, Swapper has been used by forward-thinking teams such as Airswap, Transient Labs, and Props to automatically convert volatile currencies into ETH or stablecoins like USDC. This automation saves them the trouble of manually swapping into stablecoins after receiving funds. It lets these teams set it and forget it.

As with all Splits contracts, Swapper is entirely free to use since there are no fees whatsoever. Just BYO-gas.

We're also observing an increase in DAOs, which have their own ERC20 tokens, using Swapper to convert a portion of their income (typically in ETH) into their native tokens. Applying continuous buy pressure is an innovative strategy to increase the value of their network, and we're excited to see more teams explore this on L2s.

Feature image for https://splits.ghost.io/content/images/2024/01/hovercard_display.png

Inline previews

When you hover over an address in the app, a preview of the account appears. This includes the network, contract details (like number of recipients for Splits, output token for Swappers, etc), and total earnings or volume within Splits. Try it on desktop here.

Hovering over an address will display additional info about that account

From within the preview you can copy the account's address, and if signed in with email, you can also change the account's name and tags by clicking the pencil icon.

Zora integration

Not product related but a fun update nonetheless! Using our SDK, Zora recently integrated Splits natively into their app, making it super easy for creators on Zora to split NFT rewards and revenue with collaborators.

Hundreds of creators on Zora have already been manually pasting in Split addresses, and this native platform integration makes this process much easier. Creators can now create Splits inline while deploying their NFT contracts.

You can read more about how it works in their support center.

UI updates

  • We added an "account type" affordance next to the account's avatar. This is helpful as the number of non-Split contracts in the ecosystem continues to grow.
Account type indicators are displayed next to the account's avatar
  • We replaced the old toast notifications with a more performant, modern component. These toasts will now display in the bottom right of the screen.
Toast notifications upgrade
  • Switching networks/chains now keeps you on your current page, instead of redirecting to the dashboard.

Other fixes & improvements

  • Fixed a UI bug where balances weren’t consistently displaying the correct numbers on the dashboard.
  • Fixed a search bug showing duplicate results.
  • Fixed an address input bug where ENS names would be reset upon entering a new one.
  • Fixed a statements bug when a wallet had no earnings/activity.
  • Fixed a UI bug where tags weren’t consistently sorted.
  • We also completed a bunch of tech debt issues, positioning us well for a productive 2024.
Feature image for https://splits.ghost.io/content/images/2023/12/search_withbkg-2.png

Search improvements

We've significantly enhanced the app's search functionality, making it easier to find and discover accounts. As you type, search results now instantly appear, matching both names and tags.

Results show up as you type

You can also link directly to search results, as demonstrated here. You're still able to paste in an address or enter an ENS and navigate directly to that page.

Weekly email summaries

Our weekly email summaries have been revamped for clarity. You'll now clearly see "Last week's earnings" and "Last week's withdrawals" for each account you monitor, in addition to the individual events that contributed to those earnings & withdrawals.

Swapper and Diversifier on L2s

Following the audit of a new Chainlink Oracle, we've deployed the Swapper and Diversifier contracts on L2s, including Base, Optimism, and Polygon.

Support for these contracts in our app is in progress and will be available soon.

Other fixes & improvements

  • We've created shareable images (og:image) for all accounts within the Splits ecosystem. Now, when you share an account on platforms like Twitter, Discord, iMessage, etc., you'll see more detailed information about the account.
  • Similar shareable images have also been created for other parts of the system, including docs, statements, etc.
  • The contracts have been deployed to the Sepolia and Holesky testnets. All deployment addresses are available in the docs.
  • We resolved a UI bug that caused a "no chain provided" error. A big thank you to those who reported this issue!
  • We enhanced earning statements by adding collapsible headers, displaying token totals (not just dollar amounts), and omitting transactions with zero value.
  • We fixed a UI issue regarding text wrapping in the Swapper/Diversifier earnings section.
Feature image for https://splits.ghost.io/content/images/2023/12/cover_statements.png

New feature: Earnings statements

Earnings statements allow you to easily answer the question, "How much did I earn from all my projects in the past month/quarter/year?" Once you're logged in, simply set the start and end dates, select a network, and choose a wallet (EOA or multisig) to generate the statement.

Just enter the dates, a wallet, and a network to create a statement

Once your statement is created, you can share it by downloading a CSV or getting a shareable link.

Share your statement via CSV or shareable link

Here's an example of a Q4 2023 earnings statement for 0xsplits.eth.

Statements include any names and tags you've added to the contracts, making it easy for people who haven't used Splits before to see at a glance exactly how much they've earned.

Naming API endpoint

We've released an API endpoint that allows third-party apps to add public names to contracts in Splits. This is helpful for platforms that have integrated Splits and want their users to understand what projects are contributing to their income (vs just seeing the hex addresses in the app).

If you're a developer interested in using this, please reach out to us at support at splits dot org.

Other fixes & improvements

  • We wrapped up an audit on the Chainlink Oracle implementation, which allows us to deploy Swapper on L2s—more on this soon.
  • We added L2 support for the automation bot/client.
  • We fixed a bug that allowed people to submit a withdraw transaction with a wallet that's connected to a different network than the app.
  • We fixed a UI issue with displaying accounts' upstream contracts.
Feature image for https://splits.ghost.io/content/images/2023/11/cover_changelog.png

Polishing week

The past two weeks' releases were focused on small product improvements and bug fixes, including:

  • Email alerts are now only sent if any of your watched wallets have recent activity (e.g., earnings, withdrawals, etc.).
  • Made it easier to identify when you're part of a Split by always showing your watched wallets at the top of the recipients list.
  • Improved tooltip messages on disabled buttons, making it clearer why you can't perform specific actions.
  • Improved clarity of the network selector by adding testnet versions for each chain.
  • Fixed a search bug in our Help Center.
  • Fixed a wallet bug causing Metamask to auto-open on page load.
  • Fixed a display bug causing the explore page would show contracts from other chains.

Next week we'll be shipping a new feature that makes generating custom earning statements easy. We'll also be increasing Swapper coverage by launching a Chainlink oracle and deploying the contracts to L2s.

Feature image for https://splits.ghost.io/content/images/2023/11/cover_splitskit-6.png

Introducing SplitsKit: Pre-built React components

Today we’re introducing SplitsKit, a React library designed specifically for the Splits contracts. With SplitsKit, it's easy to create and view Splits in your app without having to build any custom UI. You can learn more in our docs or at kit.splits.org.

To get started, just run yarn add @0xsplits/splits-kit.

Import the components, pass in any default values you need, and let SplitsKit handle the rest. Features include:

  • Minimally styled with light & dark modes: the UI elements come with sensible, minimal styles that match the aesthetic of our app, including light and dark modes.
  • Optimized inputs with ENS support: input elements come with masking, styling, error handling, and client-side validation. Address inputs also support ENS out of the box.
  • Multichain: SplitsKit works on Ethereum, Polygon, Optimism, Zora, Base and all of the EVM chains on which the Splits contracts are deployed.
  • Open source: the library is open source on Github and is built on top of our open source SDK.

Waterfall upgrades

When creating a Waterfall, you can now specify multiple recipients for each tranche. More often than not, Waterfall users want to split payments among multiple people, and previously this required separate transactions.

Add multiple recipients while creating a Waterfall

As part of this process, we removed Recoup since it was duplicative and caused confusion in the app. So now it's just Waterfall - no more Recoup. Give it a try at waterfall.new.

Other fixes & improvements

  • We built out a new ecosystem Dune dashboard that shows where Splits is being used across the EVM ecosystem.
  • ENS names set on mainnet now work properly on other networks (Optimism, Base, Zora, etc), even if the ENS name is not set on those networks.
  • We added additional checks to reduce the number of spam tokens showing up in the app. Note: if you're no longer seeing tokens you expect to see, go to Settings > Token Whitelist and paste in token addresses - this will override our default settings for your account.
Feature image for https://splits.ghost.io/content/images/2023/10/cover_changelog-1.png

Automation upgrades

Most of our engineering effort this past cycle went towards automating funds flowing through the system. We added automation support for Waterfalls and Recoups that are upstream of incentivized Splits or Swappers. This means that if a Waterfall or Recoup points to a Split or Swapper, all of the contracts in the payment flow will be automatically distributed (assuming it's economically viable to do so). Here is an example of a Waterfall that points to an incentivized Split that's benefiting from this upgrade.

We also expanded automation support to other ERC20 tokens including USDC, USDT, DAI, and WBTC. Previously, the automation layer only handled ETH and WETH.

Other fixes & improvements

  • Waterfalls, Recoups, Swappers, and Diversifiers all now show up on the Explore view under the "existing contracts" section.
  • We upgraded both the app and SDK to use Viem, improving performance and composability.
  • We simplified the process of adding names and tags to your contracts by combining two steps into one. Just click the pencil icon and add a name and tags in the same flow.
  • We fixed a bug where Rabby wallet users were unable to connect to the app.
  • We added the ability to name contracts during the creation flow (previously you could only add a name retroactively, after the contract was deployed).
  • We improved the flow for automating distributions on other networks (ie not mainnet) and now use more sensible default distribution thresholds on other networks since gas needs vary by network.
  • We deployed the contracts on Holesky (note: we did not add app support for Holesky, so let us know if you need it and we'll add it).
  • We fixed a bug related to network switching and page loads.
Feature image for https://splits.ghost.io/content/images/2023/10/create_tags-2.png

Tags, tags, tags!

Shortly after launching names the other week, we noticed many folks would follow a specific naming convention. They'd add names like "Nathaniel x Sasha [ArtBlocks] [Primary]" or "Heavy Calm (Songcamp Sessions)". And they'd use the same "tags" across several of the names they added.

So today we're launching Tags - a way for you to easily organize and filter your wallets and contracts within Splits.

To get started with tags, just navigate to your Settings page and create whatever tags you'd like.

Add tags from your account settings page

Then, when viewing a list of accounts just hit the 3 dots menu and select "Add tags".

Add tags to any account within the app

You can also add tags from the account detail page, by clicking the tag icon in the header.

Add or edit tags from the account detail page

Once you've added tags to accounts, you can filter by those in your dashboard. We'll be adding more robust filtering options soon.

Filter by tags in your dashboard

As part of this update, we deprecated the bookmarks feature. If you were using bookmarks, we automatically created a tag for you called "Bookmarks", so you don't lose track of any accounts you'd bookmarked. That said, if you were primarily using bookmarks just to name accounts, you can delete the "Bookmarks" tag from your settings since names were migrated to the names feature already.

Withdraw undistributed balances

The other big feature we're launching is the ability to withdraw from all the Splits you earn from at once, even if some of those Splits have balances that have not been distributed.

To do this, just hit the withdraw button from the dashboard and select balances to withdraw as you normally would. You'll notice some of the balances have a Split name next to them - those balances are still sitting in the Split. So when you withdraw those balances, you will also be distributing that balance in the Split (so the other recipients don't have to!) before withdrawing.

Balances that are sitting in a Split will show the Split name/address and your share

We've also added a "estimated gas" cost feature, so you can easily see how much it will cost to withdraw all these balances at once (since withdrawing undistributed balances will increase the gas).

Other fixes and improvements

  • You can now add names to contracts while you're creating them (if you're signed in with email). We saw many folks naming contracts immediately upon creating them, so we made this flow easier for you.
  • We finalized our migration from 0xsplits.xyz to splits.org. This means the app, docs, website, etc all now exist at our new website (and visiting the old website will redirect you to the new one).
  • We shipped a bunch of performance updates, making app and account detail page load times much faster.
  • We added pagination to the contracts table.
  • We fixed a bug in the transactions table pagination logic, where it would sometimes reset to the first page.
  • Diversifiers will now be automatically distributed once it's economically viable to do so.
Feature image for https://splits.ghost.io/content/images/2023/09/withdraw_multiple.png

Withdraw for multiple wallets at once

When we launched the multi-wallet dashboard, we knew there were a bunch of improvements we wanted to make. We've been steadily chipping away at them, and today we're excited to launch a much requested feature: withdrawing for multiple wallets in a single transaction.

Easily withdraw balances from from multiple wallets at once

If any of your watched wallets has a balance, when you click on "Withdraw" from your dashboard, you'll now be able to withdraw balances across any of your wallets. For detailed instructions, check out this article in our Help Center.

YouTube video tutorials

Our video tutorials can be found in the Help Center

We worked with the talented Russell Matthews to start building out a set of video tutorial for Splits. The videos have been published to our Help Center, and you can find the full collection on our YouTube channel.

Team offsite

We organized our first team offsite and brought everyone together for a few days in northern California. Creating space to come together as a team is important, especially as the team grows. We're glad to have finally created this space for the team and are looking forward to kicking off the next set of big projects.

Other fixes and improvements

  • The Gnosis Safe app is now available on all supported chains.
  • Swappers will now be automatically distributed once it's economically viable to do so.
  • Email statements now show current USD amounts, instead of just token balances.
  • We fixed a bug that was preventing Safari users from being able to click certain links on the Explore view.
  • We added more useful error messages when you're trying to view an account on the wrong network.
  • We fixed an issue where connecting with a wallet that has no previous activity on Splits prevented you from accessing the Dashboard view.
  • You can now remove a name that you've added to an account. Just hit the "Edit name" button and then click "Remove" in the bottom left.
  • We now display a warning about using a private RPC when manually distributing balances within a Swapper.
Feature image for https://splits.ghost.io/content/images/2023/09/global_names_banner-3.png

Organize your Splits by adding names

Humans aren't equipped to understand hexadecimal addresses. Similar to IP addresses, these hexadecimal addresses are designed for machines. Yet, the standard in most onchain applications today, including ours, is to display these complex addresses to people. While ENS has significantly improved this situation, it remains challenging, if not impossible, to set an ENS for a smart contract such as a Split.

So today we're releasing Named Splits - a way for you to replace the hexadecimal address with a human readable name in our app.

Logged-in users can add a name, which can be either public or private. Public names are visible to all users (after review by our team), while private names are only visible to the user who created it.

Add a name by clicking the pencil icon on hover

Public names are great for things like NFT projects, protocol fees, shelling points, and anything public facing. Private names, on the other hand, are useful when readability and organization are desired but visibility isn't.

Readability of the app is important since Splits is powering a new class of businesses that are emerging onchain. To date, Splits has distributed over $40 million to nearly 10,000 unique creators, makers, artists, and developers across 11 different chains.

And as more businesses of increasing complexity are powered by Splits, more people need to understand where funds are coming and going. Naming Splits makes the app far more legible and human readable.

The introduction of named Splits is just the beginning of an entirely new app experience we're building. We're doubling down on the inherently social nature of Splits by making tracking and reporting on earnings across wallets, networks, and teams considerably easier.

We want to hear your feedback—the good and bad—so please don't hesitate to reach out and let us know what you think!

Feature image for https://splits.ghost.io/content/images/2023/09/preview_image-7.png

Contracts table improvements

We released the multi-wallet dashboard view a few weeks ago and have been iterating on it since then. We'll be improving this design in the coming weeks, but in the meantime a quick reminder that all Splits/contracts displayed in the below table are a function of what watched wallets and filters you've applied.

Select which wallets and/or tags you want to see the contracts for

With today's release, you can now sort the table by any of the columns. Either click on the column header, or select the sort from the dropdown in the top right of the view.

Sort the contracts table by clicking on the column headers

We've also seen firsthand how valuable it is to name your Splits (more on that coming soon!), so we added a text search field which lets you very easily filter the table by your named Splits. Just enter text and the table will immediately display those results.

Enter text to filter the table by those named Splits

And finally, we added a summary table row so you can easily see in aggregate how funds have flowed through the contracts.

The summary row shows in aggregate how funds have flowed through the contracts

This summary row updates based on the selected filters to reflect the currently displayed contracts.

Introducing the transactions table

In addition to the work done on improving the contracts table, we also created an all new transactions table view. This view allows you to easily see all the transactions that have occurred for your watched wallets.

The transactions table shows all transactions for your selected wallets

Now, instead of going to each individual watched wallet's page to see the relevant transactions, you're able to see all the transactions in a single view. You can see the Splits/contracts your watched wallets interacted with, as well as exactly the token value for each transaction.

Weekly email summaries

We also updated the weekly email summaries so that it's easier to parse through the information. Each email now includes the date period listed in the subject line, and the formatting of the emails was improved for readability.

Feature image for https://splits.ghost.io/content/images/2024/04/cover_changelog.png

Earnings by contract

The Earned column shows your wallet(s) earning for the specific contract/Split

We've heard how important it is to be able to see how much a given person/wallet has earned from a specific Split. Maybe it's understanding how much a musician earned from a single song, or perhaps a business running on Splits wants to see how much revenue they've generated from a specific client—there are lots of times when seeing earnings by contract for a given wallet is useful.

The "Earned" column now shows this right on your dashboard page.

Network selector shows all networks

Splits has been deployed on a bunch of chains, but those chains weren't all discoverable in the app. Now they are.

Just click on the network icon in the top right, and you can see all the networks on which you can use Splits.

Select from a list of networks, or view the testnets

You can also hit the "view testnets" toggle to view only the test networks Splits is deployed on.

Feature image for https://splits.ghost.io/content/images/2023/08/add_wallet.gif

Multi-wallet dashboard

People often use one wallet for day-to-day operations (their "hot wallet") and another wallet for storing assets (multisig, hardware wallet, etc). This is great for a number of reasons, however, it makes it difficult to see "the whole picture" when earnings are spread across multiple wallets. And this problem is exacerbated if you have more complex payment flows like one of the many businesses built on top of Splits.

The assumption that 1 person = 1 wallet is not true, and, more often than not, simply connecting your wallet does not give you the full picture. We built an entirely new multi-wallet dashboard to solve this.

You can now track earnings across multiple wallets right from your dashboard

Now, regardless of whether your wallet is connected or not, once you sign in (using a password-free magic email link) you can add as many external wallets and multisigs as you want to your dashboard. All you have to do is enter the address/ENS and the earnings and associated Splits will be added to your dashboard.

But before getting into all the dashboard updates...

Email notifications

Many people are earning money through Splits on a daily basis, yet it's hard to understand just how much you're making and where that money is coming from. To solve this, we built email notifications which sends you a weekly summary of all earnings and activity for all the wallets you're watching.

It's very basic right now, but we'll be iterating on this over the coming weeks so if you've signed up for an account please just reply to the weekly email and let us know what information you'd like to see included.

We opted to ship a quick MVP of this feature instead of trying to perfect it, so your feedback will help make it much better.

Okay, on to the multi-wallet dashboard improvements.

Dashboard updates

Earnings across multiple wallets

See your total earnings across all your wallets

You can easily see how much you've earned across all your watched wallets. We'll be adding more functionality to this soon, like showing your total balances and adding the ability to withdraw balances for all your wallets in a single transaction.

Filter by wallets

Filter by any of your watched wallets

You can filter by any of your watched wallets to quickly see only the Splits and earnings associated with those wallets. You can also filter by tags (i.e., bookmarks), which we'll be enhancing the functionality of soon™.

Quick access to your wallets

Access your watched wallets right from the sidebar

Once you've added one or more wallets to watch, they will show up in the left sidebar, making it easy to quickly access those accounts.

Account settings

Now that you're able to sign in/up with email, we've also released an account settings page. You can access it by clicking the gear icon in the top left (if you're signed in).

The account settings page lets you do things like update your email address, turn on/off email notifications, and add a list of additional tokens (ERC20 addresses) you want displayed in the app (this is particularly important for non-mainnet networks where all ERC20s are not displayed by default).

In summary

There's more to these features than meet the eye, so these initial feature set the stage for a lot more fully-baked product enhancements that are coming soon.

We've received a ton of great feedback from makers and teams using Splits to power their businesses, and are dedicated to continually improving the app. Thanks for your support!

Feature image for https://splits.ghost.io/content/images/2023/08/base-3.png

Live on Base

Splits is now live on Base! As always, just select Base from the network selector and start using the app as you would on any other network.

Select Base from the network selector
Feature image for https://splits.ghost.io/content/images/2023/08/zora_launch-2.png

Zora Network

Splits is now live on Zora Network! Just select Zora in the network selector and approve the network change in your wallet. (If this is your first time using Zora Network, you will need to approve your wallet adding Zora to your list of supported networks.)

Select Zora from the network selector

We've received a bunch of requests from creators to support Zora Network, and are excited to support the growing landscape of L2s. As a reminder, all networks Splits is deployed on can be found here.

One thing to note: Splits are chain-specific, meaning that a Split created on Zora can only be used on Zora. Said differently, if an NFT collection exists on Chain A, you must also deploy a Split on Chain A—you cannot (currently) use a Split on Chain A that was created on Chain B.

Feature image for https://splits.ghost.io/content/images/2023/07/help_center.png

Help Center

We built out a creator-focused Help Center, making it easy to get answers to frequently asked questions and learn more about how Splits works in the broader Ethereum ecosystem.

We'll continue to add more content over time, so please reach out if there's anything you'd like to see us cover.

Feature image for https://splits.ghost.io/content/images/2023/06/swapper_hero-2.png

Introducing Swapper

Last week we announced the newest contract to the Splits ecosystem - Swapper. It lets you specify the token you want to receive, regardless of what you’re sent. It does this by automatically swapping any tokens (ETH or ERC20s) it receives into a predefined output token. For more details, check out our launch post, Introducing Swapper.

...and Diversifier

We’re thrilled to launch this publicly; it’s been a long time in the making. And what we’re arguably more thrilled about are all the new uses cases this modular contract unlocks. To this end, we also announced Diversifier, which stacks a Split and Swapper(s) together to create a wallet that auto diversifies any income stream before funds hit your account.

Set the percentage and the token type you want to receive

For creators, this means you can create a tax withholding wallet that swaps 40% of your income to USDC (or any stable coin) and set aside for taxes, with the remainder going to your hot wallet. We wrote about this use case in the Introducing Swapper launch post, so please check it out and let us know what you think.

Other updates

  • We began the migration to splits.org. We can’t migrate everything just yet since we have a few product features we’re still building that will make this process seamless for users, but over time you’ll see more of our brand move over to our new domain.
  • We added the ability to sponsor Splits on all chains. Previously this was only supported on mainnet, and now it’s supported on all chains supported by the UI (full list is here).
  • We also fixed a number of bugs, including incorrectly showing “Account not found” due to a subgraph query limit, and implemented a number of design updates.

Looking forward

Over the next few months, we’re going to be investing heavily into the product and user experience. Now that more of the “building blocks” are in place from a smart contract standpoint (ie Split, Swapper, Waterfall) we're going to be doubling down on the app to ensure deploying and using these building blocks in creative ways is seamless.

Feature image for https://splits.ghost.io/content/images/2023/06/changelog_06_01-1.png

Split creation flow

We've made a number of design improvements to the new Split flow.

Creating a Liquid Split is now a template. We did this because it's fundamentally different than just creating a Split, since when creating a Liquid Split you're actually deploying an NFT contract in addition to a mutable Split. Given our future product direction we felt pulling Liquid Split out into it's own template makes the most sense.

Mutable Split controller

Previously, choosing to make a Split mutable was separate from choosing the controller. Since a Split can only be mutable if a controller is set, we decided to combine these two steps into one by allowing you to make a selection. If you want the Split to be immutable, just select "no controller". Otherwise, you can either select yourself (if your wallet is connected) or you an enter in any address you wish.

Distribution threshold

Adding a distribution bounty is the best way to automate your Splits. By adding a bounty, you're encouraging third-parties to come and distribute balances for the recipients. In an effort to more clearly communicate how this bounty works, we've redesigned this input to let you select the amount at which balances will be distributed. You can see (on the right side) what percentage the distributor fee will be based on the threshold you've selected.

Splits Sponsor

We're grateful for the folks who have chosen to donate a portion of their Split's earnings back to the team building Splits. It's an honor knowing that people are choosing to pay us—not because they have to, but because they want to. We want to both celebrate the people who have chosen to donate, and also make it easier to donate. Now, the last part of creating a new Split is deciding whether you want to become a sponsor.

If you choose to become a sponsor, anytime your Split is viewed or shared online, everyone will see the sponsorship badge displayed at the top of your page and know that you've chosen to sponsor the development of Splits.

Upload CSV flow

People have increasingly been creating larger and larger Splits. We've seen several Splits with hundreds of recipients! This is great to see, and we need to ensure that creating large Splits is as easy as possible. To this end, we redesigned the "bulk upload" flow to make it both easier to use and more apparent as an option.

Now when creating a Split, next to "Add Recipient" there is an "Upload CSV" option. Clicking it will open a dialog where you can either upload a CSV or paste in a list of addresses and amounts. Once you hit "Validate", those recipients will be added as recipients.

Recoup creation flow

Finally, we took the changes we made to the new Split form, including the CSV upload flow, and added them to the new Recoup page as well. We have seen more and more folks use the Recoup flow, like this Metalabel drop, and have found that the process of creating a Recoup with many recipients was tedious. Plus, there were a number of bugs we learned about. So we fixed the bugs and brought all the Split improvements over to Recoup.

Most of our effort has been focused on getting Swapper into a launch-ready state – keep an eye out for more news on that front in the coming weeks!

Sherlock competition

Our radio silence and general lack of changelog updates is because we've been focused on Swapper, a new contract we're about to launch. We have been working on this contract for a few months now and just opened up a Sherlock competition for it and a handful of related contracts.

This is our first time doing a Sherlock competition and we're excited to have obront be our Lead Senior Watson. We'd love for you to join and see what vulnerabilities you can find. The competition ends on April 24th.

We'll be launching Swapper into the app (along with a handful of related products) in the coming weeks once the Sherlock competition is complete.

Templates section

When creating new contracts, we've separated the main building blocks (Split and Waterfall) from the templates. Templates stack different building blocks together, so we wanted to make a clearer distinction between the types of contracts being created. We're also developing more contracts and templates, and this separation will help users understand how everything works together.

Templates make it easy to create multiple contracts in one transaction

Recoup preview

When creating a Recoup, multiple contracts are involved. To make it easier to understand how funds will flow through the contract once it's created, we added a contract preview to the creation process.

The Recoup Preview shows how the funds will flow

Creation flow polish

We made some improvements to the new contract creation process, including removing unnecessary components, improving the mobile experience, and hiding infrequently used actions.

Feature image for https://splits.ghost.io/content/images/2023/08/changelog_recoup.png

Recoup template

We believe the onchain ecosystem as a whole benefits greatly from simple, modular, and reusable tools. We also understand that it's oftentimes the combination of simple tools that unlock new workflows.

When Waterfall launched a few months ago, we thought about how great it would be to pair it with Splits. In fact, Metalabel did just this. This combination of Waterfall + Splits lets you create all sorts of interesting structures that revolve around splitting profits instead of revenue. Most projects have upfront costs, and the person who covers those costs wants to be repaid before profits are split among the group. Musicians, VC, PE, debt—tons of workflows exist that need to combine these contracts together.

The problem is that to do so requires deep knowledge of how the system as a whole operates, since you can't create a Waterfall that points to a Split unless that Split already exists. Recoup solves this problem. It's a very simple contract paired with a UI that lets you, in a single transaction, create a Waterfall that points to multiple Splits.

Creating a new Recoup is as familiar as creating a Split

When creating a new Recoup, just list all the recipients you want paid out for each tier. As long as more than one recipient is added, when you create the Recoup a Split will also be created. And if there's only one recipient, no Split will be created.

And once again, Metalabel is already using this. For their most recent Quality Drops, they teamed up with Songcamp and Catalog to create a Recoup for an event they're hosting around NFT NYC in April. You can see their Recoup here, and you can read more about the event and tickets here.

Recoup detail view shows which tranche is active and all the recipients

We think of Recoup as being the first template - a pre-built collection of contracts that solve a very specific problem. We have a number of additional templates we we'll be launching in the coming months, stay tuned.

Improved mobile layout

We wanted to make the app easier to use on mobile, particularly for folks just connecting their wallet to withdraw their balances. This should be simple, and previously it required a number of steps and an unintuitive withdraw flow. We improved this on mobile by combining the various actions—network selector, navigation, account menu—into one coherent section.

Additional improvements

  • We now match the same recipient order on the new Split form after hitting "Duplicate Split" from a Split account page
  • We fixed an issue within the account menu dialog, where accounts with lots of tokens to withdraw weren't able to see the full list
  • We reworked the subgraph to ensure Liquid Splits created by third parties properly display in the app

Explore page

There’s a lot of activity going on within the Splits protocol. Unless you know exactly what you’re looking for, it can be rather intimidating to see just a list of all the Splits ever created, which is what we were previously displaying for new users.

Explore featured accounts

We improved this experience by launching an all new Explore page, which allows you to see how a handful of different groups—from DAOs to artists to collectives—are getting the most out of the Splits ecosystem.

Additional networks

It’s important for Splits to be available where the people are, so we’ve deployed the contracts onto a number of new networks including Gnosis, Aurora, Fantom, Avalanche and more. The full list is here. We’ve updated the app to support all these networks and their testnets as well. You won’t see them all in the network selected, but you can still access them by changing the network in your wallet provider.

Token whitelist

Due to the nuances of fetching ERC-20 token information on each new chain, we’ve added the ability for people to customize their own token whitelist in the app. In addition to the tokens on the app's global whitelist, all tokens added to this whitelist will show up in your app.

Customize your token whitelist

Note that this whitelist is saved only to local storage and is associated to the network and connected wallet, meaning if you change network and/or connected wallet, the whitelist will also change.

Additional improvements

  • We added gas estimates to the SDK. When using the SDK, it’s easy to fetch the estimated gas cost for any transaction. More in the docs here.
  • We’re now displaying all contracts in a more consistent manner, making it easier to see any account’s earnings, balance, and last activity. Additionally, when viewing a Split on an account page, you can see the percentage of the Split that account is earning.
  • We removed the testnets from the network selector in the app. You can still access the app on the various testnets by manually changing the network in Metamask/your wallet.

Hello, Changelog!

We take pride in what we build. And since launching 0xSplits to the world in February 2022, more often than not, much of what we build is never publicly documented. Sometimes we tweet about some big new features, but that typically only happens for…big features. Yet so much of our time is invested in sweating the details and getting the small interactions right.

So today, we’re introducing the Changelog, a dedicated space to share all the things we've shipped. So let's get to it.

Updated layout

A new layout and fresh coat of paint for the app

We have big plans for the app and will be launching a ton of new features in the next few months. As a result, we needed to introduce a new layout that will provide more flexibility and support for these new features. The new layout gives us this flexibility while making navigation easier on mobile devices and improving the withdraw flow for connected accounts.

Distribute and withdraw

You can now distribute and withdraw in a single transactoin

There are many times when you may want to distribute a Split and then immediately withdraw for those recipients. Maybe because some of the recipients are smart contracts that cannot withdraw for themselves, or perhaps you’re just feeling generous. Regardless of the reason, there are times when pushing funds to the end recipients is useful.

Previously, this required going to each recipient’s account page and hitting withdraw. While you can still do that, we’ve made this process a lot easier. Just select the Split balances you wish to distribute, and then hit the down icon within the distribute button. You’ll be able to select what recipients—either all, or if you’re part of the Split, just yourself—for whom you wish to withdraw.

Duplicate an existing Split

You can now use an existing Split as a template

We’ve heard time and again the need to create multiple Splits that are nearly identical. A 5-way Split where 4 of the recipients never change. Whether you’re a music label, podcast host, or musician, there are often times when you want a very similar but not identical configuration.

Instead of downloading the CSV and then uploading that each time, now you can just hit the Duplicate Split button within the “Split Recipients” tab. This will take you to the new Split page with the configuration pre-filled, allowing you to make whatever modifications you’d like.

You can create a Split by passing params into the URL

You may notice that when you do this, we’re actually adding a bunch of params to the URL on the new Split page. We built this feature in this way so that 3rd party apps can deep-link into the new Split flow, allowing users to create pre-defined Split according to 3rd party apps.