diff --git a/Ripple/Federation.hs b/Ripple/Federation.hs
--- a/Ripple/Federation.hs
+++ b/Ripple/Federation.hs
@@ -1,5 +1,6 @@
 module Ripple.Federation (
 	resolve,
+	resolveAgainst,
 	getRippleTxt,
 	Alias(..),
 	ResolvedAlias(..),
@@ -174,6 +175,11 @@
 		_ ->
 			throwT $ Error NoSupported (T.pack "No federation_url in ripple.txt")
 
+	EitherT (a `resolveAgainst` uri)
+
+-- | Resolve an alias against a known federation_url
+resolveAgainst :: Alias -> URI -> IO (Either Error ResolvedAlias)
+resolveAgainst a uri = runEitherT $ do
 	FederationResult r <- EitherT $ runUnexceptionalIO $ runEitherT $ get uri a
 	hoistEither r
 
diff --git a/ripple-federation.cabal b/ripple-federation.cabal
--- a/ripple-federation.cabal
+++ b/ripple-federation.cabal
@@ -1,5 +1,5 @@
 name:            ripple-federation
-version:         0.1
+version:         0.2
 cabal-version:   >= 1.8
 license:         OtherLicense
 license-file:    COPYING
