diff --git a/exercises/practice/binary/.meta/solutions/Binary.rakumod b/exercises/practice/binary/.meta/solutions/Binary.rakumod
new file mode 100644
index 00000000..a8ff35fc
--- /dev/null
+++ b/exercises/practice/binary/.meta/solutions/Binary.rakumod
@@ -0,0 +1,13 @@
+class Binary is export {
+ method to_decimal ($binary) {
+ return 0 if $binary ~~ /<-[^01]>/;
+
+ my $decimal = 0;
+ my $index = $binary.chars;
+
+ for $binary.split('',:skip-empty) -> $bit {
+ $decimal += $bit * 2 ** --$index;
+ }
+ return $decimal;
+ }
+}
diff --git a/exercises/practice/binary/.meta/solutions/binary.rakutest b/exercises/practice/binary/.meta/solutions/binary.rakutest
new file mode 120000
index 00000000..d06913f2
--- /dev/null
+++ b/exercises/practice/binary/.meta/solutions/binary.rakutest
@@ -0,0 +1 @@
+../../binary.rakutest
\ No newline at end of file
diff --git a/exercises/practice/binary/Binary.rakumod b/exercises/practice/binary/Binary.rakumod
new file mode 100644
index 00000000..e69de29b
diff --git a/exercises/practice/binary/binary.rakutest b/exercises/practice/binary/binary.rakutest
new file mode 100644
index 00000000..0fc6bf3b
--- /dev/null
+++ b/exercises/practice/binary/binary.rakutest
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use Test;
+use lib $?FILE.IO.dirname;
+use Binary;
+
+plan 9;
+
+ok Binary.can('to_decimal'), 'Class Binary has to_decimal method';
+
+my %results = (
+ 1 => 1,
+ 10 => 2,
+ 11 => 3,
+ 100 => 4,
+ 1001 => 9,
+ 11010 => 26,
+ 10001101000 => 1128,
+ 'carrot23' => 0,
+);
+
+for %results.sort {
+ is Binary.to_decimal($_.key), $_.value, '"' ~ $_.key ~ '" returns ' ~ $_.value;
+}
diff --git a/exercises/practice/trinary/.meta/solutions/Trinary.rakumod b/exercises/practice/trinary/.meta/solutions/Trinary.rakumod
new file mode 100644
index 00000000..9d7e09ba
--- /dev/null
+++ b/exercises/practice/trinary/.meta/solutions/Trinary.rakumod
@@ -0,0 +1,6 @@
+sub to-decimal($num) is export {
+
+ return 0 if $num ~~ /<-[012]>/;
+
+ return reduce { 3 * $^a + $^b }, 0, |$num.comb;
+}
diff --git a/exercises/practice/trinary/.meta/solutions/trinary.rakutest b/exercises/practice/trinary/.meta/solutions/trinary.rakutest
new file mode 120000
index 00000000..07ca8d9e
--- /dev/null
+++ b/exercises/practice/trinary/.meta/solutions/trinary.rakutest
@@ -0,0 +1 @@
+../../trinary.rakutest
\ No newline at end of file
diff --git a/exercises/practice/trinary/Trinary.rakumod b/exercises/practice/trinary/Trinary.rakumod
new file mode 100644
index 00000000..e69de29b
diff --git a/exercises/practice/trinary/trinary.rakutest b/exercises/practice/trinary/trinary.rakutest
new file mode 100644
index 00000000..fec7dbe3
--- /dev/null
+++ b/exercises/practice/trinary/trinary.rakutest
@@ -0,0 +1,52 @@
+#!/usr/bin/env raku
+
+use Test;
+use lib $?FILE.IO.dirname;
+use Trinary;
+
+my @cases = (
+ {
+ input => 1,
+ expected => 1,
+ },
+ {
+ input => 2,
+ expected => 2,
+ },
+ {
+ input => 10,
+ expected => 3,
+ },
+ {
+ input => 11,
+ expected => 4,
+ },
+ {
+ input => 100,
+ expected => 9,
+ },
+ {
+ input => 10,
+ expected => 3,
+ },
+ {
+ input => 112,
+ expected => 14,
+ },
+ {
+ input => 222,
+ expected => 26,
+ },
+ {
+ input => 1122000120,
+ expected => 32091,
+ },
+ {
+ input => "carrot",
+ expected => 0,
+ }
+);
+
+plan @cases.elems;
+
+is to-decimal( . ), ., . for @cases;